@charset "UTF-8";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body{margin:0;font-family:system-ui,-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;line-height:1.5}button{font-family:inherit;cursor:pointer}input,textarea{font-family:inherit}a{text-decoration:none;color:inherit}.section-base{width:100%;padding:1rem;overflow:hidden;border:2px solid #e2e8f0;border-radius:.75rem;background-color:#fff}@media(max-width:600px){.section-base{padding:.5rem;border-radius:.5rem}}.section-base .section-header{padding:0 0 .5rem;border-bottom:1px solid #e2e8f0}.section-base .section-header h3{margin:0;color:#2d3748;font-weight:600;font-size:.875rem;font-family:Space Grotesk,sans-serif}.section-base .section-content{display:flex;flex-direction:column;padding:1rem 0 0;gap:1rem}.comment-form{display:flex;flex-direction:column;gap:1rem}.comment-form .form-row{display:flex;flex-direction:column;margin-bottom:1rem;gap:1rem}@media(max-width:600px){.comment-form .form-row{display:flex;flex-direction:column;margin-bottom:.25rem;gap:.5rem}}.comment-form .form-group label{display:block;margin-bottom:.5rem;color:#2d3748;font-weight:600;font-size:.875rem}.comment-form .form-group .toggle-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;user-select:none}.comment-form .form-group .toggle-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.comment-form .form-group .comment-input{box-sizing:border-box;width:100%;padding:.5rem;border:2px solid #e2e8f0;border-radius:.25rem;background-color:#fff;color:#2d3748;font-size:1rem;transition:border-color .2s}.comment-form .form-group .comment-input:focus{border-color:#4a90e2;outline:none}.comment-form .form-group .comment-input:disabled{background-color:#f7fafc;cursor:not-allowed}.comment-form .form-group .color-picker{display:flex;flex-wrap:wrap;gap:.5rem}.comment-form .form-group .color-picker .color-button{width:32px;height:32px;padding:0;border:2px solid #e2e8f0;border-radius:.25rem;cursor:pointer;transition:all .2s}.comment-form .form-group .color-picker .color-button.selected{border:3px solid #4a90e2;box-shadow:0 0 0 2px #4a90e24d}.comment-form .form-group .color-picker .color-button:hover:not(:disabled){box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;opacity:.8}.comment-form .form-group .color-picker .color-button:disabled{cursor:not-allowed;opacity:.5}.comment-form .form-group .size-picker,.comment-form .form-group .speed-picker,.comment-form .form-group .animation-picker{display:flex;gap:.5rem}.comment-form .form-group .size-picker .size-button,.comment-form .form-group .size-picker .speed-button,.comment-form .form-group .size-picker .animation-button,.comment-form .form-group .speed-picker .size-button,.comment-form .form-group .speed-picker .speed-button,.comment-form .form-group .speed-picker .animation-button,.comment-form .form-group .animation-picker .size-button,.comment-form .form-group .animation-picker .speed-button,.comment-form .form-group .animation-picker .animation-button{flex:1;padding:.5rem 0;border:2px solid #e2e8f0;border-radius:.25rem;background-color:#f7fafc;font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s}.comment-form .form-group .size-picker .size-button:hover:not(:disabled),.comment-form .form-group .size-picker .speed-button:hover:not(:disabled),.comment-form .form-group .size-picker .animation-button:hover:not(:disabled),.comment-form .form-group .speed-picker .size-button:hover:not(:disabled),.comment-form .form-group .speed-picker .speed-button:hover:not(:disabled),.comment-form .form-group .speed-picker .animation-button:hover:not(:disabled),.comment-form .form-group .animation-picker .size-button:hover:not(:disabled),.comment-form .form-group .animation-picker .speed-button:hover:not(:disabled),.comment-form .form-group .animation-picker .animation-button:hover:not(:disabled){border-color:#cbd5e0;background-color:#edf2f7}.comment-form .form-group .size-picker .size-button:disabled,.comment-form .form-group .size-picker .speed-button:disabled,.comment-form .form-group .size-picker .animation-button:disabled,.comment-form .form-group .speed-picker .size-button:disabled,.comment-form .form-group .speed-picker .speed-button:disabled,.comment-form .form-group .speed-picker .animation-button:disabled,.comment-form .form-group .animation-picker .size-button:disabled,.comment-form .form-group .animation-picker .speed-button:disabled,.comment-form .form-group .animation-picker .animation-button:disabled{cursor:not-allowed;opacity:.5}.comment-form .form-group .size-picker .size-button.selected,.comment-form .form-group .size-picker .speed-button.selected,.comment-form .form-group .size-picker .animation-button.selected,.comment-form .form-group .speed-picker .size-button.selected,.comment-form .form-group .speed-picker .speed-button.selected,.comment-form .form-group .speed-picker .animation-button.selected,.comment-form .form-group .animation-picker .size-button.selected,.comment-form .form-group .animation-picker .speed-button.selected,.comment-form .form-group .animation-picker .animation-button.selected,.comment-form .form-group .size-picker .size-button.selected:hover,.comment-form .form-group .size-picker .speed-button.selected:hover,.comment-form .form-group .size-picker .animation-button.selected:hover,.comment-form .form-group .speed-picker .size-button.selected:hover,.comment-form .form-group .speed-picker .speed-button.selected:hover,.comment-form .form-group .speed-picker .animation-button.selected:hover,.comment-form .form-group .animation-picker .size-button.selected:hover,.comment-form .form-group .animation-picker .speed-button.selected:hover,.comment-form .form-group .animation-picker .animation-button.selected:hover{border-color:#4a90e2;background-color:#4a90e2;color:#fff}.comment-form .submit-button{width:100%;padding:.5rem;border:none;border-radius:.25rem;background-color:#4a90e2;color:#fff;font-weight:600;font-size:1rem;cursor:pointer;transition:transform .2s,box-shadow .2s}.comment-form .submit-button:hover:not(:disabled){opacity:.8}.comment-form .submit-button:disabled{transform:none;background:#ccc;cursor:not-allowed}.comment-history .section-content{padding:0}.comment-history-title{display:flex;align-items:center;justify-content:space-between;width:100%}.comment-history-title span:first-child{color:#2d3748;font-weight:600;font-size:.875rem}.comment-count{color:#718096;font-weight:500;font-size:.875rem}.comment-history-empty{padding:2rem 1rem;color:#a0aec0;font-size:.875rem;text-align:center}.comment-history-list{max-height:100%;overflow-y:auto}@media(max-width:600px){.comment-history-list{max-height:320px}}.comment-history-item{display:flex;align-items:center;padding:.75rem .5rem;gap:.25rem}.comment-history-item:nth-child(odd){background-color:#fff}.comment-history-item:nth-child(2n){background-color:#f7fafc}.comment-text{flex:1;color:#2d3748;font-size:.875rem;word-break:break-word}.comment-time{flex-shrink:0;color:#a0aec0;font-size:.75rem;font-variant-numeric:tabular-nums}.copy-button{padding:2px;border:none;background-color:transparent;font-size:.875rem;cursor:pointer;transition:all .2s}.copy-button:hover{border-color:#4a90e2;background-color:#f7fafc}.copy-button:active{transform:scale(.95)}.comment-history-list::-webkit-scrollbar{width:6px}.comment-history-list::-webkit-scrollbar-track{background:#f7fafc}.comment-history-list::-webkit-scrollbar-thumb{border-radius:3px;background:#cbd5e0}.comment-history-list::-webkit-scrollbar-thumb:hover{background:#a0aec0}.status-toast{z-index:1000;position:fixed;top:1.5rem;left:50%;min-width:300px;padding:1rem;transform:translate(-50%);border-radius:.5rem;background-color:#f56565;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;color:#fff;animation:slideDown .3s ease-out}.status-toast-content{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.status-toast-message{flex:1;font-size:.875rem;line-height:1.5}.status-toast-reconnect{padding:.25rem 1rem;border:1px solid rgba(255,255,255,.5);border-radius:.25rem;background:#fff3;color:#fff;font-weight:500;font-size:.875rem;white-space:nowrap;cursor:pointer;transition:background .2s}.status-toast-reconnect:hover:not(:disabled){background:#ffffff4d}.status-toast-reconnect:active:not(:disabled){background:#fff6}.status-toast-reconnect:disabled{cursor:not-allowed;opacity:.5}@keyframes slideDown{0%{transform:translate(-50%) translateY(-100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.section-tabs{display:flex;border-bottom:2px solid #e2e8f0;background-color:#f7fafc}.section-tab{flex:1;padding:.5rem 1rem;background:none;border:none;font-size:.875rem;font-weight:600;color:#718096;cursor:pointer;transition:all .2s;border-bottom:3px solid transparent;margin-bottom:-2px}.section-tab:hover:not(:disabled){color:#4a5568;background-color:#edf2f7}.section-tab.active{color:#4a90e2;border-bottom-color:#4a90e2;background-color:#fff}.section-tab:disabled{opacity:.5;cursor:not-allowed}.upload-dialog-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.upload-dialog-container{width:90%;max-width:500px}.upload-dialog{box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.upload-dialog-body{padding:0}.upload-form-group{margin-bottom:1rem}.upload-form-group label{display:block;margin-bottom:.5rem;font-weight:600;color:#2d3748;font-size:.875rem}.upload-form-group input[type=text]{width:100%;padding:.5rem;border:2px solid #e2e8f0;border-radius:.375rem;font-size:.875rem;transition:border-color .2s;box-sizing:border-box}.upload-form-group input[type=text]:focus{outline:none;border-color:#4a90e2}.upload-form-group input[type=text]:disabled{background-color:#f7fafc;cursor:not-allowed}.file-input-hidden{display:none}.file-input-label{display:block;cursor:pointer;margin-bottom:0}.file-input-button{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.5rem 1rem;border:2px dashed #cbd5e0;border-radius:.5rem;font-size:.875rem;background-color:#f7fafc;color:#4a5568;text-align:center;transition:all .2s;box-sizing:border-box;font-weight:500}.file-input-button:before{content:"📁";font-size:1.25rem}.file-input-button:hover{border-color:#4a90e2;background-color:#edf2f7;color:#4a90e2}.file-input-hidden:disabled~.file-input-button{background-color:#f7fafc;cursor:not-allowed;border-color:#cbd5e0;opacity:.6}.upload-preview{margin-top:1rem;text-align:center}.upload-preview img{max-width:200px;max-height:200px;border-radius:.5rem;border:2px solid #e2e8f0}.upload-dialog-footer{display:flex;gap:.5rem;padding-top:1rem;border-top:1px solid #e2e8f0;justify-content:flex-end;margin-top:1rem}.upload-cancel-button,.upload-submit-button{padding:.5rem 1rem;border-radius:.375rem;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s;border:none}.upload-cancel-button:disabled,.upload-submit-button:disabled{opacity:.5;cursor:not-allowed}.upload-cancel-button{background-color:#f7fafc;color:#4a5568}.upload-cancel-button:hover:not(:disabled){background-color:#edf2f7}.upload-submit-button{background-color:#4a90e2;color:#fff}.upload-submit-button:hover:not(:disabled){background-color:#357abd}.stamp-picker .section-content{padding:0;min-height:200px}.emoji-picker-wrapper{--epr-search-input-padding: 0}.emoji-picker-wrapper .epr-main{border:none}.emoji-picker-wrapper .epr-search-container input{padding:.625rem 1rem}.emoji-picker-wrapper .epr-icn-search{background-image:none!important}.emoji-picker-wrapper .epr-category-nav{padding:.5rem 0}.emoji-picker-wrapper .epr-emoji-category-label{font-size:.75rem;padding-left:.5rem;font-weight:600;height:24px;color:#2d3748}.emoji-picker-wrapper .epr-emoji-category-content{margin:0}.emoji-picker-wrapper aside{width:100%!important}.stamp-search{position:relative;padding:15px 10px;background-color:#fff}.stamp-search-input{width:100%;height:40px;padding:.625rem 1rem;font-size:.875rem;color:#2d3748;background-color:#f6f6f6;border:none;border-radius:.5rem;outline:none;transition:all .2s}.stamp-search-input::placeholder{color:#858585}.stamp-search-input:focus{background-color:#fff;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.stamp-search-input:disabled{opacity:.5;cursor:not-allowed}.stamp-search-clear{position:absolute;right:1.5rem;top:50%;transform:translateY(-50%);width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;background:none;border:none;color:#a0aec0;font-size:1.25rem;cursor:pointer;border-radius:.25rem;transition:all .2s;padding:0}.stamp-search-clear:hover:not(:disabled){background-color:#e2e8f0;color:#4a5568}.stamp-search-clear:disabled{opacity:.5;cursor:not-allowed}.stamp-no-results{padding:2rem 1rem;text-align:center;color:#a0aec0;font-size:.875rem}.stamp-grid{display:grid;gap:.5rem;padding:1rem;max-height:400px;overflow-y:auto;overflow-x:hidden}.emoji-grid{grid-template-columns:repeat(8,1fr)}.custom-stamps{grid-template-columns:repeat(auto-fill,minmax(76px,1fr))}.stamp-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.25rem;padding:.5rem;background-color:#fff;border:2px solid #e2e8f0;border-radius:.5rem;cursor:pointer;transition:all .2s;aspect-ratio:1;min-height:0}.emoji-button,.custom-stamp{padding:.5rem}.stamp-button:hover:not(:disabled){background-color:#edf2f7;border-color:#cbd5e0;transform:scale(1.05)}.stamp-button:disabled{opacity:.5;cursor:not-allowed}.stamp-emoji{font-size:2rem;line-height:1}.stamp-label{font-size:.625rem;color:#718096;text-align:center;line-height:1.2;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stamp-grid::-webkit-scrollbar{width:6px}.stamp-grid::-webkit-scrollbar-track{background:#f7fafc}.stamp-grid::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:3px}.stamp-grid::-webkit-scrollbar-thumb:hover{background:#a0aec0}.custom-stamp-image{width:2rem;height:2rem;object-fit:contain}.stamp-button-wrapper{position:relative;aspect-ratio:1}.stamp-button-wrapper .stamp-button{width:100%;height:100%}.stamp-delete-button{position:absolute;top:-.25rem;right:-.25rem;width:1.25rem;height:1.25rem;display:flex;align-items:center;justify-content:center;background-color:#f56565;color:#fff;border:2px solid #ffffff;border-radius:50%;font-size:1rem;line-height:1;cursor:pointer;opacity:0;transition:all .2s;padding:0;box-shadow:0 1px 2px #0000000d}.stamp-button-wrapper:hover .stamp-delete-button{opacity:1}.stamp-delete-button:hover:not(:disabled){background-color:#c53030;transform:scale(1.1)}.stamp-delete-button:disabled{opacity:.5;cursor:not-allowed}.stamp-loading{padding:1rem;text-align:center;color:#718096;font-size:.875rem}.add-stamp-button{background-color:#f7fafc;border:2px dashed #cbd5e0}.add-stamp-button .add-icon{font-size:2rem;color:#a0aec0}.add-stamp-button:hover:not(:disabled){background-color:#edf2f7;border-color:#4a90e2}.add-stamp-button:hover:not(:disabled) .add-icon{color:#4a90e2}.room-selector .room-section-title{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem}.room-selector .room-history-link{padding:.25rem .5rem;border:1px solid #e2e8f0;border-radius:.25rem;background-color:#f7fafc;color:#4a5568;font-weight:600;font-size:.75rem;transition:border-color .2s,background-color .2s,color .2s}.room-selector .room-history-link:hover{border-color:#4a90e2;background-color:#edf2f7;color:#357abd}.room-selector .room-history-link:focus-visible{outline:none;box-shadow:0 0 0 3px #4a90e22e}.room-selector .room-selector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.room-selector .room-form-group{display:flex;flex-direction:column;gap:.5rem}.room-selector .room-form-group>label{color:#2d3748;font-weight:600;font-size:.875rem}.room-selector .room-input-row{display:flex;min-width:0;gap:.5rem}.room-selector select,.room-selector input{flex:1;min-width:0;height:40px;padding:0 .5rem;border:2px solid #e2e8f0;border-radius:.25rem;outline:none;background-color:#fff;color:#2d3748;font-size:.875rem;font-family:inherit;transition:border-color .2s,box-shadow .2s,background-color .2s}.room-selector select:hover:not(:disabled),.room-selector input:hover:not(:disabled){border-color:#cbd5e0}.room-selector select:focus-visible,.room-selector input:focus-visible{border-color:#4a90e2;box-shadow:0 0 0 3px #4a90e22e}.room-selector select:disabled,.room-selector input:disabled{background-color:#f7fafc;cursor:not-allowed;opacity:.5}.room-selector select{appearance:none;padding-right:2rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none'%3E%3Cpath d='M4 6l4 4 4-4' stroke='%23718096' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right .5rem center;background-size:1rem;background-repeat:no-repeat;cursor:pointer}.room-selector .room-button{min-width:80px;height:40px;padding:0 1rem;border-radius:.25rem;font-weight:600;font-size:.875rem;font-family:inherit;cursor:pointer;transition:border-color .2s,background-color .2s,box-shadow .2s,opacity .2s}.room-selector .room-button:focus-visible{outline:none;box-shadow:0 0 0 3px #4a90e238}.room-selector .room-button:disabled{cursor:not-allowed;opacity:.5}.room-selector .room-button-secondary{border:2px solid #e2e8f0;background-color:#f7fafc;color:#4a5568}.room-selector .room-button-secondary:hover:not(:disabled){border-color:#cbd5e0;background-color:#edf2f7}.room-selector .room-button-primary{border:2px solid #4a90e2;background-color:#4a90e2;color:#fff}.room-selector .room-button-primary:hover:not(:disabled){border-color:#357abd;background-color:#357abd}@media(max-width:600px){.room-selector .room-selector-grid{grid-template-columns:1fr;gap:1rem}.room-selector .room-button{min-width:72px;padding:0 .5rem}}.app{display:flex;flex-direction:column;align-items:center;min-height:100vh;padding-bottom:200px;background-color:#333}@media(max-width:600px){.app{padding:.5rem .5rem 50px}}.app .app-header{display:flex;flex-direction:column;align-items:center;width:100%;padding:40px 0 1rem;gap:40px;color:#fff;text-align:center}@media(max-width:600px){.app .app-header{padding:14px 0}}.app .app-header .app-title{display:flex;align-items:center;justify-content:center;margin:0;gap:1rem;font-size:48px;font-weight:700;line-height:1;font-family:Space Grotesk,sans-serif}@media(max-width:600px){.app .app-header .app-title{gap:.5rem;font-size:1.5rem}}.app .app-header .app-title .comet-icon{width:60px;height:60px;animation:float 3s ease-in-out infinite}@media(max-width:600px){.app .app-header .app-title .comet-icon{width:30px;height:30px;animation:float-small 3s ease-in-out infinite}}.app .app-header.compact-header{padding-bottom:1.5rem;gap:0}.app .app-content{display:flex;flex-direction:column;width:100%;max-width:1200px;gap:1.5rem}.app .app-content-main{display:flex;flex-direction:row;max-height:1200px;gap:1.5rem}@media(max-width:600px){.app .app-content-main{flex-direction:column;max-height:none}}.app .app-main{display:flex;flex-direction:column;width:100%;max-width:800px;gap:1.5rem}.app .app-aside{display:flex;flex-direction:column;width:400px;gap:1.5rem}@media(max-width:600px){.app .app-aside{width:100%}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes float-small{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.history-page{width:100%;max-width:1200px;padding:0 1rem;color:#2d3748}.history-list,.history-detail{display:flex;flex-direction:column;gap:1.5rem}.history-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:1.5rem;border:2px solid #e2e8f0;border-radius:.75rem;background:#fff}.history-heading-row h2{margin:.25rem 0;font-size:1.5rem}.history-heading-row p{color:#718096;font-size:.875rem}.history-back{color:#4a90e2;font-size:.875rem;font-weight:600}.history-back:hover{color:#357abd}.history-title-meta{display:flex;align-items:center;margin-top:.25rem;gap:.5rem}.history-title-meta time{color:#4a5568;font-weight:500;font-size:.875rem}.history-status{display:inline-flex;padding:2px .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.history-status.active{background:#c6f6d5;color:#276749}.history-status.archived{background:#edf2f7;color:#718096}.history-actions{display:flex;gap:.5rem}.history-button{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 1rem;border-radius:.25rem;font-weight:600;font-size:.875rem;transition:border-color .2s,background-color .2s,box-shadow .2s}.history-button:focus-visible{outline:none;box-shadow:0 0 0 3px #4a90e238}.history-button:disabled{cursor:not-allowed;opacity:.5}.history-button.primary{border:2px solid #4a90e2;background:#4a90e2;color:#fff}.history-button.primary:hover:not(:disabled){border-color:#357abd;background:#357abd}.history-button.secondary{border:2px solid #e2e8f0;background:#f7fafc;color:#4a5568}.history-button.secondary:hover:not(:disabled){border-color:#cbd5e0;background:#edf2f7}.history-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.history-room-card{padding:1.5rem;border:2px solid #e2e8f0;border-radius:.75rem;background:#fff;box-shadow:0 1px 2px #0000000d;transition:transform .2s,border-color .2s,box-shadow .2s}.history-room-card:hover{transform:translateY(-2px);border-color:#4a90e2;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.history-room-card>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.history-room-card h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.125rem}.history-room-card>p{margin-top:.25rem;color:#718096;font-size:.75rem}.history-room-card dl{display:grid;grid-template-columns:repeat(3,1fr);margin-top:1rem;padding-top:1rem;border-top:1px solid #e2e8f0}.history-room-card dl div{text-align:center}.history-room-card dt{color:#718096;font-size:.75rem}.history-room-card dd{font-size:1.125rem;font-weight:700}.history-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.history-summary div{display:flex;flex-direction:column;align-items:center;padding:1rem;border:2px solid #e2e8f0;border-radius:.75rem;background:#fff}.history-summary strong{display:flex;align-items:center;min-height:48px;font-size:1.5rem;color:#4a90e2}.history-summary span{color:#718096;font-size:.875rem}.history-summary .summary-stamp strong{font-size:1rem}.history-peaks{display:flex;overflow-x:auto;padding:2px 2px .5rem;gap:1rem;scroll-snap-type:x proximity;scrollbar-width:thin}.history-peak-card{flex:0 0 calc((100% - 2rem) / 3);min-width:260px;overflow:hidden;padding:0;border:2px solid #e2e8f0;border-radius:.5rem;background:#fff;color:#2d3748;text-align:left;scroll-snap-align:start;transition:transform .2s,border-color .2s,box-shadow .2s}.history-peak-card:hover{transform:translateY(-2px);border-color:#4a90e2;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f}.history-peak-card:focus-visible{outline:none;box-shadow:0 0 0 3px #4a90e238}.history-peak-card>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-bottom:1px solid #e2e8f0;background:#f7fafc}.history-peak-placeholder{display:grid;width:100%;aspect-ratio:16/9;place-items:center;border-bottom:1px solid #e2e8f0;background:#f7fafc;color:#718096;font-size:.75rem}.history-peak-body{padding:.5rem 1rem}.history-peak-heading{display:flex;align-items:baseline;gap:.5rem}.history-peak-heading strong{color:#ed8936;font-size:1.125rem}.history-peak-heading b{color:#4a90e2;font-size:.875rem}.history-peak-heading time{margin-left:auto;color:#4a5568;font-size:.875rem;font-variant-numeric:tabular-nums}.history-chart-wrap{position:relative;min-height:300px}.history-chart-section{overflow:visible}.history-chart{display:block;width:100%;min-height:230px;cursor:crosshair;color:#718096;font-size:11px}.chart-grid{stroke:#e2e8f0;stroke-width:1}.chart-comment{fill:#4a90e2}.chart-stamp{fill:#ed8936}.chart-hover-line{stroke:#2d374859;stroke-width:1;stroke-dasharray:3 3;pointer-events:none}.chart-capture-marker{pointer-events:none}.chart-capture-marker circle{fill:#805ad5}.chart-legend{display:flex;justify-content:center;gap:1.5rem;color:#4a5568;font-size:.75rem}.chart-legend span:before{display:inline-block;width:10px;height:10px;margin-right:.25rem;border-radius:2px;content:""}.legend-comment:before{background:#4a90e2}.legend-stamp:before{background:#ed8936}.legend-capture:before{width:6px!important;height:6px!important;border-radius:50%!important;background:#805ad5}.history-tooltip{position:absolute;bottom:calc(100% + .5rem);display:flex;flex-direction:column;width:min(560px,100%);max-width:560px;padding:.5rem 1rem;gap:2px;border:1px solid #e2e8f0;border-radius:.375rem;background:#fffffff5;box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;font-size:.75rem;pointer-events:none;z-index:2}.history-tooltip .tooltip-comment{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#4a5568}.history-tooltip small{margin-top:.25rem;color:#718096}.history-tooltip-captures{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:.25rem 0;gap:.25rem}.history-tooltip-captures img{display:block;width:100%;aspect-ratio:16/9;border:1px solid #e2e8f0;border-radius:.25rem;object-fit:cover}.tooltip-ranking{display:flex;flex-direction:column;margin-top:.25rem;gap:.25rem}.tooltip-ranking>div{display:grid;grid-template-columns:18px 64px minmax(0,1fr) auto;align-items:center;gap:.25rem}.tooltip-ranking>div>b{color:#4a90e2;text-align:center}.tooltip-ranking>div>strong{color:#4a5568;white-space:nowrap}.tooltip-popular,.tooltip-stamp,.history-stamp{display:inline-flex;align-items:center}.tooltip-popular{flex-wrap:wrap;gap:.25rem}.tooltip-stamp{gap:2px}.tooltip-stamp b{color:#4a5568;font-weight:600}.history-stamp{max-width:100%;gap:.5rem}.history-stamp img{flex:0 0 auto;width:40px;height:40px;border-radius:.25rem;object-fit:contain;background-color:#f7fafc}.history-stamp.compact{gap:.25rem}.history-stamp.compact img{width:20px;height:20px}.history-stamp.deleted{color:#718096;font-style:italic}.history-events .section-content{gap:0}.history-event{display:grid;grid-template-columns:72px minmax(0,1fr);align-items:center;min-height:40px;padding:.25rem 0;gap:.5rem;border-bottom:1px solid #e2e8f0}.history-event p{display:flex;align-items:center;min-width:0;gap:.25rem;white-space:nowrap;font-size:.875rem}.event-content{min-width:0;overflow:hidden;text-overflow:ellipsis}.event-count{flex:0 0 auto;color:#4a5568;font-size:.875rem;font-weight:600;white-space:nowrap}.event-kind{padding:2px .25rem;border-radius:.25rem;text-align:center;font-size:.75rem}.event-kind.comment{background:#ebf8ff;color:#2b6cb0}.event-kind.stamp{background:#fffaf0;color:#c05621}.history-page-message{padding:2rem;border-radius:.75rem;background:#fff;color:#718096;text-align:center}.history-page-message.error,.history-inline-error{padding:.5rem 1rem;border-radius:.375rem;background:#fed7d7;color:#c53030}.history-empty,.history-loading{padding:1rem 0;color:#718096;text-align:center;font-size:.875rem}.load-more{align-self:center}@media(max-width:600px){.history-page{padding:0}.history-heading-row{align-items:stretch;flex-direction:column;padding:1rem}.history-actions{width:100%}.history-actions .history-button{flex:1}.history-room-grid{grid-template-columns:1fr;gap:1rem}.history-summary{gap:.5rem}.history-summary{grid-template-columns:1fr}.history-summary strong{font-size:1.25rem}.history-peak-card{flex-basis:85%;min-width:240px}.history-event{grid-template-columns:64px minmax(0,1fr)}.history-tooltip{right:0;left:0;max-width:none}}
