@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&display=swap";:root{--bg: #0d0d0d;--fg: #c8c8c8;--fg-dim: #5a5a5a;--accent: #f0f0f0;--border: #2a2a2a;--success: #4a9;--error: #a54;--error-light: #c66;--warning: #a54;--admin-accent: #bb9af7;--admin-accent-dim: #9d7cd8;--info: #7dcfff;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--font-mono: "IBM Plex Mono", "Courier New", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--border-width: 1px;--border-radius-sm: 2px;--border-radius-md: 8px;--border-radius-full: 50%;--transition-fast: .15s;--transition-normal: .2s;--shadow-dropdown: 0 4px 12px rgba(0, 0, 0, .3);--touch-target-min: 44px;--touch-target-comfortable: 48px;--touch-target-large: 56px;--bottom-nav-height: 64px;--top-bar-height: 56px;--safe-area-top: env(safe-area-inset-top, 0px);--safe-area-bottom: env(safe-area-inset-bottom, 0px);--safe-area-left: env(safe-area-inset-left, 0px);--safe-area-right: env(safe-area-inset-right, 0px);--content-padding: 1rem;--card-padding: 1rem;--input-font-size: 1rem;--input-height: 48px;--btn-height: 48px;--btn-padding-x: 1.5rem;--btn-padding-y: .875rem;--icon-btn-size: 44px;--avatar-sm: 32px;--avatar-md: 44px;--avatar-lg: 64px;--avatar-xl: 80px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html{font-size:16px}body{font-family:var(--font-mono);background-color:var(--bg);color:var(--fg);min-height:100vh;min-height:100dvh;line-height:1.6;letter-spacing:.02em;overscroll-behavior:none;-webkit-overflow-scrolling:touch}#root{width:100%;min-height:100vh;min-height:100dvh;padding:var(--content-padding);padding-top:calc(var(--content-padding) + var(--safe-area-top));padding-bottom:calc(var(--bottom-nav-height) + var(--safe-area-bottom) + var(--content-padding));padding-left:calc(var(--content-padding) + var(--safe-area-left));padding-right:calc(var(--content-padding) + var(--safe-area-right))}::selection{background:var(--fg);color:var(--bg)}a{color:var(--fg);text-decoration:none}a:active{opacity:.7}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.hide-scrollbar::-webkit-scrollbar{display:none}.container{min-height:calc(100vh - 4rem);display:flex;flex-direction:column}.main{flex:1}.section-title{font-size:var(--font-size-sm);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:var(--space-lg)}.loading-screen{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:var(--space-md)}.status-list{list-style:none;margin-top:var(--space-lg)}.status-item{padding:var(--space-sm) 0;font-size:var(--font-size-base)}.status-item:before{content:">";margin-right:.75rem;color:var(--fg-dim)}.status-item--success{color:var(--fg)}.status-item--success:before{color:var(--success)}.status-item--error{color:var(--fg)}.status-item--error:before{color:var(--error)}.empty-text{color:var(--fg-dim);font-style:italic}@keyframes blink{0%,50%{opacity:1}51%,to{opacity:0}}.cursor-blink:after{content:"█";animation:blink 1s infinite;margin-left:2px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:var(--btn-height);padding:var(--btn-padding-y) var(--btn-padding-x);background:transparent;border:1px solid var(--fg-dim);color:var(--fg);font-family:inherit;font-size:var(--font-size-base);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.btn:active:not(:disabled){background:var(--fg);color:var(--bg);border-color:var(--fg)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn--full{width:100%}.btn--secondary{border-color:var(--border);color:var(--fg-dim)}.btn--secondary:active:not(:disabled){background:var(--fg-dim);color:var(--bg);border-color:var(--fg-dim)}.btn--text{display:inline-flex;align-items:center;justify-content:center;min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--space-sm);background:transparent;border:none;text-decoration:underline;text-underline-offset:3px;color:var(--fg);font-family:inherit;font-size:inherit;cursor:pointer}.btn--text:active:not(:disabled){background:transparent;color:var(--accent)}.btn--text.btn--small{min-height:unset;min-width:unset;padding:var(--space-xs) var(--space-sm);font-size:var(--font-size-xs)}.btn--danger{border-color:var(--error);color:var(--error-light)}.btn--danger:active:not(:disabled){background:var(--error);color:#fff;border-color:var(--error)}.btn--small{min-height:var(--touch-target-min);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-sm)}.btn--ghost{border-color:transparent;color:var(--fg-dim)}.btn--ghost:active:not(:disabled){background:transparent;color:var(--fg);border-color:var(--border)}.btn-icon{display:flex;align-items:center;justify-content:center;width:var(--icon-btn-size);height:var(--icon-btn-size);min-width:var(--icon-btn-size);min-height:var(--icon-btn-size);background:none;border:1px solid var(--border);color:var(--fg);cursor:pointer;font-family:inherit;font-size:var(--font-size-md)}.btn-icon:active:not(:disabled){border-color:var(--fg);background:#ffffff1a}.btn-icon--danger:active:not(:disabled){border-color:var(--error);color:var(--error-light)}.btn-icon:disabled{opacity:.4;cursor:not-allowed}.btn--capture{min-width:140px;min-height:var(--touch-target-large);border-color:var(--fg);letter-spacing:.1em}.btn--capture:active:not(:disabled){background:var(--fg);color:var(--bg)}.btn--record{min-height:var(--touch-target-large);border-color:var(--error);color:var(--error-light)}.btn--record:active:not(:disabled){background:var(--error);color:#fff;border-color:var(--error)}.btn--stop{min-height:var(--touch-target-large);border-color:var(--error);background:var(--error);color:#fff}.btn--stop:active:not(:disabled){background:var(--error-light);border-color:var(--error-light)}.login-container{width:100%}.login-title{font-size:var(--font-size-lg);color:var(--fg);margin-bottom:var(--space-xl);text-transform:uppercase}.form-row{margin-bottom:var(--space-lg)}.form-row-inline{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-md)}.form-row-inline .form-row{flex:1;margin-bottom:0}.form-label{display:block;font-size:var(--font-size-sm);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-sm)}.form-input{width:100%;min-height:var(--input-height);padding:var(--space-md);background:transparent;border:1px solid var(--border);border-radius:var(--border-radius-sm);color:var(--fg);font-family:inherit;font-size:var(--input-font-size);outline:none}.form-input:focus{border-color:var(--fg-dim)}.form-input::placeholder{color:var(--fg-dim);opacity:.6}.form-input--small{min-height:var(--touch-target-min);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-base)}.form-textarea{resize:vertical;min-height:100px;padding:var(--space-md)}.form-select{min-height:var(--input-height);background:transparent;color:var(--fg);cursor:pointer;padding-right:var(--space-xl)}.header{display:flex;align-items:center;justify-content:space-between;height:var(--top-bar-height);padding-bottom:var(--space-md);margin-bottom:var(--space-lg);border-bottom:1px solid var(--border)}.logo{display:flex;align-items:center;gap:var(--space-sm);min-height:var(--touch-target-min);padding:var(--space-xs) 0}.logo-kaomoji{font-size:var(--font-size-xl);color:var(--fg);letter-spacing:.05em;-webkit-user-select:none;user-select:none}.logo:active .logo-kaomoji{color:var(--accent)}.logo-text{font-size:var(--font-size-lg);font-weight:500;color:var(--fg);text-transform:lowercase;letter-spacing:.1em}.nav{display:none}.nav-link{display:flex;align-items:center;justify-content:center;min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--space-sm) var(--space-md);color:var(--fg-dim);text-transform:uppercase;font-size:var(--font-size-sm);letter-spacing:.05em;background:none;border:none;cursor:pointer;font-family:inherit}.nav-link:active{color:var(--fg)}.nav-link.active{color:var(--accent)}.nav-link--admin{color:var(--admin-accent-dim)}.nav-link--admin:active,.nav-link--admin.active{color:var(--admin-accent)}.nav-sep{display:none}.header-menu-btn{display:flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);background:none;border:0px solid var(--border);color:var(--fg-dim);font-family:inherit;font-size:var(--font-size-lg);cursor:pointer}.header-menu-btn:active{border-color:var(--fg);color:var(--fg)}.header-menu-overlay{position:fixed;inset:0;background:#0009;z-index:200;display:flex;justify-content:flex-end}.header-menu{width:100%;max-width:320px;height:100%;background:var(--bg);border-left:1px solid var(--border);display:flex;flex-direction:column;animation:slideInRight var(--transition-normal) ease-out}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.header-menu-header{display:flex;align-items:center;justify-content:space-between;min-height:var(--top-bar-height);padding:var(--space-md) var(--content-padding);padding-top:calc(var(--space-md) + var(--safe-area-top));border-bottom:1px solid var(--border);flex-shrink:0}.header-menu-content{flex:1;overflow-y:auto;padding:var(--content-padding);padding-bottom:calc(var(--content-padding) + var(--safe-area-bottom))}.header-menu-section{padding:var(--space-md) 0;border-bottom:1px solid var(--border)}.header-menu-section:last-child{border-bottom:none}.header-menu-section-title{font-size:var(--font-size-md);font-weight:500;color:var(--fg);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-md)}.header-menu-section--logout{margin-top:auto;padding-top:var(--space-xl);border-bottom:none}.header-menu-section--logout .btn{width:100%}.header-menu-section .notification-settings{border:none;padding:0;margin-bottom:0}.header-menu-section .notification-header{flex-wrap:wrap}.header-menu-section .notification-header-left{flex:1;min-width:0}.header-menu-section .notification-header-text{min-width:0}.header-menu-section .notification-title{font-size:var(--font-size-sm)}.header-menu-section .notification-subtitle{font-size:var(--font-size-xs)}.header-menu-section .notification-options{margin-top:var(--space-md)}.header-menu-section .notification-option{padding:var(--space-sm)}.header-menu-section .notification-option-label{font-size:var(--font-size-sm)}.header-menu-section .notification-option-description{font-size:var(--font-size-xs)}.header-menu-section .notification-warning{font-size:var(--font-size-xs);padding:var(--space-sm)}.header-menu-section .notification-debug{margin-top:var(--space-md);padding-top:var(--space-md)}.header-menu-section .notification-debug .debug-info{font-size:.65rem;word-break:break-all}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--bottom-nav-height);padding-bottom:var(--safe-area-bottom);background:var(--bg);border-top:1px solid var(--border);display:flex;align-items:stretch;justify-content:space-around;z-index:90}.bottom-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-xs);min-height:var(--touch-target-comfortable);padding:var(--space-sm);background:none;border:none;color:var(--fg-dim);font-family:inherit;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.05em;cursor:pointer}.bottom-nav-item:active{background:#ffffff0d}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item--admin.active{color:var(--admin-accent)}.bottom-nav-icon{font-size:var(--font-size-lg);line-height:1}.bottom-nav-label{font-size:var(--font-size-xs)}.bottom-nav-action{flex:1;display:flex;align-items:center;justify-content:center;padding:var(--space-sm);background:none;border:none;cursor:pointer}.bottom-nav-action-btn{display:flex;align-items:center;justify-content:center;width:var(--touch-target-large);height:var(--touch-target-large);background:var(--fg);color:var(--bg);border:none;border-radius:var(--border-radius-md);font-family:inherit;font-size:var(--font-size-xl);font-weight:500;cursor:pointer}.bottom-nav-action-btn:active{background:var(--accent)}.footer{margin-top:var(--space-3xl);padding-top:var(--space-lg);border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-size:var(--font-size-sm);color:var(--fg-dim)}.modal-overlay,.create-post-overlay,.edit-profile-overlay{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;z-index:100;overflow:hidden}.modal,.create-post-modal,.edit-profile-modal{display:flex;flex-direction:column;width:100%;height:100%;background:var(--bg);overflow:hidden}.modal{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:calc(100% - var(--space-xl) * 2);max-width:320px;height:auto;border:1px solid var(--border);padding:var(--space-lg)}.modal-header,.create-post-header,.edit-profile-header{display:flex;align-items:center;justify-content:space-between;min-height:var(--top-bar-height);padding:var(--space-md) var(--content-padding);padding-top:calc(var(--space-md) + var(--safe-area-top));border-bottom:1px solid var(--border);flex-shrink:0}.modal-header{padding:0;padding-bottom:var(--space-md);min-height:auto;border-bottom:none}.modal-header h3{font-size:var(--font-size-md);font-weight:500;color:var(--fg);text-transform:uppercase}.modal-close{display:flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);background:none;border:none;color:var(--fg-dim);font-size:var(--font-size-xl);cursor:pointer}.modal-close:active{color:var(--fg)}.modal-body{margin-bottom:var(--space-lg)}.modal-warning{display:flex;align-items:center;gap:.75rem;color:var(--error-light);margin-bottom:var(--space-md)}.warning-icon{font-size:var(--font-size-lg)}.modal-info{color:var(--fg-dim);font-size:var(--font-size-base)}.modal-message{margin-top:var(--space-md);padding:var(--space-sm);font-size:var(--font-size-base)}.modal-message--success{color:var(--success);border:1px solid var(--success)}.modal-message--error{color:var(--error-light);border:1px solid var(--error)}.modal-actions{display:flex;gap:var(--space-md);padding:var(--space-md) 0}.modal-actions .btn{flex:1}.create-post-content{flex:1;overflow-y:auto;padding:var(--content-padding);padding-bottom:calc(var(--content-padding) + var(--safe-area-bottom))}.create-post-modal>form{flex:1;display:flex;flex-direction:column;overflow-y:auto;padding:0 var(--content-padding)}.create-post-previews{display:flex;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-md)}.preview-item{position:relative;width:80px;height:80px}.preview-media{width:100%;height:100%;object-fit:cover;border:1px solid var(--border)}.preview-remove{position:absolute;top:-10px;right:-10px;width:var(--touch-target-min);height:var(--touch-target-min);background:var(--bg);border:1px solid var(--border);color:var(--fg);cursor:pointer;font-size:var(--font-size-md);display:flex;align-items:center;justify-content:center}.preview-remove:active{background:var(--border)}.create-post-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm);margin-bottom:var(--space-md)}.create-post-actions .form-input--small{grid-column:span 2}.create-post-submit{display:flex;padding:var(--content-padding);padding-bottom:calc(var(--content-padding) + var(--safe-area-bottom));border-top:1px solid var(--border);flex-shrink:0}.create-post-submit .btn{flex:1}.media-input-section{display:flex;flex-direction:column;gap:var(--space-md);margin:var(--space-lg) 0}.media-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:var(--touch-target-comfortable);background:transparent;border:1px solid var(--border);color:var(--fg);cursor:pointer;font-family:inherit}.media-btn:active{background:#ffffff0d;border-color:var(--fg-dim)}.media-btn--primary{width:100%;min-height:120px;padding:var(--space-xl);flex-direction:column;border:1px dashed var(--border)}.media-btn--primary:active{border-color:var(--accent);background:#ffffff05}.media-btn--secondary{min-height:var(--touch-target-min);padding:var(--space-sm) var(--space-md);border-radius:var(--border-radius-sm);font-size:var(--font-size-sm);border:1px solid var(--border);color:var(--fg-dim)}.media-btn--upload,.media-btn--music{flex:1}.media-btn--secondary:active{color:var(--fg);background:#ffffff0d}.media-btn-icon{font-size:var(--font-size-xl);line-height:1}.media-btn--primary .media-btn-icon{font-size:2rem;margin-bottom:var(--space-sm)}.media-actions-secondary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding-top:var(--space-sm)}.preview-add-more{width:80px;height:80px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);background:transparent;color:var(--fg-dim);cursor:pointer;font-size:var(--font-size-xl)}.preview-add-more:active{color:var(--fg);border-color:var(--fg)}.edit-profile-content{flex:1;overflow-y:auto;padding:var(--content-padding)}.edit-avatar-section{display:flex;justify-content:center;margin-bottom:var(--space-xl)}.edit-avatar-btn{position:relative;width:var(--avatar-xl);height:var(--avatar-xl);border-radius:var(--border-radius-full);overflow:hidden;background:transparent;border:2px dashed var(--border);cursor:pointer}.edit-avatar-preview,.edit-avatar-placeholder{width:100%;height:100%;object-fit:cover}.edit-avatar-placeholder{display:flex;align-items:center;justify-content:center;background:var(--border);color:var(--fg);font-size:var(--font-size-2xl);font-weight:500}.edit-avatar-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#00000080;color:var(--fg);font-size:var(--font-size-xs);text-transform:uppercase}.edit-avatar-btn:active .edit-avatar-overlay{background:#000000b3}.edit-profile-actions{display:flex;gap:var(--space-md);padding:var(--content-padding);padding-bottom:calc(var(--content-padding) + var(--safe-area-bottom));border-top:1px solid var(--border);flex-shrink:0}.edit-profile-actions .btn{flex:1}.feed{width:100%}.feed-loading,.feed-empty{text-align:center;padding:var(--space-2xl) 0}.feed-empty-text{color:var(--fg);font-size:var(--font-size-lg);margin-bottom:var(--space-sm)}.feed-empty-hint{color:var(--fg-dim);font-size:var(--font-size-base)}.feed-list{display:flex;flex-direction:column;gap:var(--space-lg)}.section-title{font-size:var(--font-size-lg);font-weight:500;color:var(--fg);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-lg)}.post-card{border:1px solid var(--border);padding:var(--card-padding)}.post-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-md)}.post-user{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-xs);margin:calc(-1 * var(--space-xs))}.post-avatar{width:var(--avatar-md);height:var(--avatar-md);border-radius:var(--border-radius-full);object-fit:cover}.post-avatar--placeholder{display:flex;align-items:center;justify-content:center;background:var(--border);color:var(--fg);font-weight:500}.post-avatar--kaomoji{font-size:var(--font-size-xs);letter-spacing:-.05em}.post-user-info{display:flex;flex-direction:column}.post-display-name{font-weight:500;color:var(--fg);font-size:var(--font-size-base)}.post-username{font-size:var(--font-size-sm);color:var(--fg-dim)}.post-user--clickable{cursor:pointer}.post-user--clickable:active{opacity:.8}.post-user--clickable:active .post-username{color:var(--accent);text-decoration:underline;text-underline-offset:2px}.post-meta{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-xs);font-size:var(--font-size-xs);color:var(--fg-dim)}.post-time{text-transform:uppercase}.post-location{font-size:var(--font-size-xs)}.post-media{margin:var(--space-md) calc(-1 * var(--card-padding));position:relative}.post-media-content{width:100%;max-height:60vh;object-fit:contain;background:#0000004d}.post-media-loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--fg-dim)}.media-nav{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-sm);padding:0 var(--card-padding)}.media-nav-btn{display:flex;align-items:center;justify-content:center;min-width:var(--touch-target-min);min-height:var(--touch-target-min);background:transparent;border:1px solid var(--border);color:var(--fg);cursor:pointer;font-family:inherit;font-size:var(--font-size-lg)}.media-nav-btn:active:not(:disabled){border-color:var(--fg);background:#ffffff0d}.media-nav-btn:disabled{opacity:.3;cursor:not-allowed}.media-counter{font-size:var(--font-size-sm);color:var(--fg-dim);min-width:60px;text-align:center}.post-text{color:var(--fg);font-size:var(--font-size-base);line-height:1.6;margin-bottom:var(--space-md);white-space:pre-wrap}.post-link{display:flex;align-items:center;min-height:var(--touch-target-min);color:var(--fg-dim);font-size:var(--font-size-sm);margin-bottom:var(--space-md);word-break:break-all;padding:var(--space-sm) 0}.post-link:active{color:var(--fg)}.post-footer{display:flex;flex-direction:column;padding-top:var(--space-md);border-top:1px solid var(--border)}.post-footer-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm);position:relative}.post-actions{display:flex;gap:var(--space-sm)}.reactions{display:flex;align-items:center;gap:var(--space-sm);position:relative;flex:1}.reaction-list{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.reaction-badge{display:flex;align-items:center;justify-content:center;gap:var(--space-xs);min-height:var(--touch-target-min);min-width:var(--touch-target-min);padding:var(--space-sm) var(--space-md);background:transparent;border:1px solid var(--border);color:var(--fg);cursor:pointer;font-family:inherit;font-size:var(--font-size-lg)}.reaction-badge:active{border-color:var(--fg-dim);background:#ffffff0d}.reaction-badge--own{background:var(--border);border-color:var(--fg-dim)}.reaction-count{font-size:var(--font-size-sm);color:var(--fg-dim)}.reaction-add{width:var(--touch-target-min);height:var(--touch-target-min);display:flex;align-items:center;justify-content:center;background:transparent;border:1px dashed var(--border);color:var(--fg-dim);cursor:pointer;font-family:inherit;font-size:var(--font-size-lg)}.reaction-add:active{border-color:var(--fg);color:var(--fg)}.reaction-picker{position:absolute;top:100%;left:calc(-1 * var(--card-padding, var(--space-md)));right:calc(-1 * var(--card-padding, var(--space-md)));margin-top:var(--space-sm);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-xs);padding:var(--space-sm);background:var(--bg);border:1px solid var(--border);z-index:100;box-sizing:border-box}@media(min-width:480px){.reaction-picker{left:0;right:auto;width:max-content;padding:var(--space-md)}}.reaction-option{display:flex;align-items:center;justify-content:center;min-height:var(--touch-target-min);padding:var(--space-xs);background:var(--bg);border:1px solid var(--border);color:var(--fg);cursor:pointer;font-family:inherit;font-size:.7rem;white-space:nowrap}.reaction-option:active{background:#ffffff1a;border-color:var(--fg-dim)}.comments{margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border)}.comments-list{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-md)}.comment{display:flex;gap:var(--space-sm);align-items:flex-start}.comment-user{flex-shrink:0;background:none;border:none;padding:var(--space-xs);cursor:pointer;min-width:var(--avatar-sm);min-height:var(--avatar-sm)}.comment-avatar{width:var(--avatar-sm);height:var(--avatar-sm);border-radius:var(--border-radius-full);object-fit:cover}.comment-avatar--placeholder{display:flex;align-items:center;justify-content:center;background:var(--border);color:var(--fg-dim);font-size:var(--font-size-xs)}.comment-content{flex:1;min-width:0}.comment-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-xs)}.comment-author{font-size:var(--font-size-sm);font-weight:500;color:var(--fg);background:none;border:none;padding:var(--space-xs) 0;cursor:pointer;font-family:inherit;min-height:var(--touch-target-min);display:flex;align-items:center}.comment-author:active{text-decoration:underline}.comment-time{font-size:var(--font-size-xs);color:var(--fg-dim)}.comment-delete{margin-left:auto;display:flex;align-items:center;justify-content:center;min-width:var(--touch-target-min);min-height:var(--touch-target-min);background:none;border:none;color:var(--fg-dim);cursor:pointer;font-size:var(--font-size-md);padding:var(--space-sm);opacity:.6}.comment-delete:active{color:var(--error);opacity:1}.comment-text{font-size:var(--font-size-base);color:var(--fg);margin:0;word-break:break-word;line-height:1.5}.comment-toggle{display:inline-flex;align-items:center;min-height:var(--touch-target-min);background:none;border:none;color:var(--fg-dim);cursor:pointer;font-family:inherit;font-size:var(--font-size-sm);padding:var(--space-sm) 0}.comment-toggle:active{color:var(--fg)}.comment-form{display:flex;flex-direction:column;gap:var(--space-sm)}.comment-input{width:100%;min-height:var(--touch-target-comfortable);padding:var(--space-md);background:transparent;border:1px solid var(--border);border-radius:var(--border-radius-sm);color:var(--fg);font-family:inherit;font-size:var(--font-size-base)}.comment-input:focus{outline:none;border-color:var(--fg-dim)}.comment-input::placeholder{color:var(--fg-dim)}.comment-form-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.create-post-camera{display:flex;flex-direction:column;gap:var(--space-md)}.capture-mode-toggle{display:flex;gap:var(--space-sm);justify-content:center;margin-bottom:var(--space-sm)}.capture-mode-btn{padding:var(--space-sm) var(--space-md);background:transparent;border:1px solid var(--border);color:var(--fg-dim);font-family:inherit;font-size:var(--font-size-sm);text-transform:uppercase;cursor:pointer;transition:all var(--transition-fast)}.capture-mode-btn:hover:not(:disabled){border-color:var(--fg);color:var(--fg)}.capture-mode-btn.active{border-color:var(--fg);color:var(--fg);background:#ffffff0d}.capture-mode-btn:disabled{opacity:.4;cursor:not-allowed}.camera-container{position:relative;width:100%;aspect-ratio:4 / 3;background:#111;border:1px solid var(--border);overflow:hidden}.video-wrapper{position:relative;width:100%;height:100%}.camera-feed{width:100%;height:100%;object-fit:cover;display:none}.camera-feed.active{display:block}.camera-feed.mirrored{transform:scaleX(-1)}.camera-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);color:var(--fg-dim)}.camera-icon{font-size:var(--space-2xl)}.capturing-second-indicator,.recording-indicator{position:absolute;top:var(--space-md);left:50%;transform:translate(-50%);display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:#000000b3;color:var(--fg);font-size:var(--font-size-sm)}.capturing-spinner{width:12px;height:12px;border:2px solid var(--fg-dim);border-top-color:var(--fg);border-radius:var(--border-radius-full);animation:spin .8s linear infinite}.rec-dot{width:10px;height:10px;background:#c44;border-radius:var(--border-radius-full);animation:pulse 1s ease-in-out infinite}.camera-switch-btn{position:absolute;bottom:var(--space-md);right:var(--space-md);width:40px;height:40px;background:#0009;border:1px solid var(--border);color:var(--fg);font-family:inherit;font-size:var(--font-size-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.camera-switch-btn:hover{background:#000c;border-color:var(--fg)}.facing-indicator{position:absolute;bottom:var(--space-md);left:var(--space-md);padding:var(--space-xs) var(--space-sm);background:#0009;color:var(--fg-dim);font-size:var(--font-size-xs);text-transform:uppercase}.captured-preview{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.captured-media{max-width:100%;max-height:100%;object-fit:contain}.bereal-preview{position:relative;width:100%;height:100%;cursor:pointer}.bereal-main{width:100%;height:100%;object-fit:cover}.bereal-overlay-container{position:absolute;top:12px;left:12px;width:28%;border:3px solid #fff;border-radius:var(--border-radius-md);overflow:hidden;box-shadow:var(--shadow-dropdown)}.bereal-overlay{width:100%;display:block}.bereal-swap-hint{position:absolute;bottom:4px;right:4px;padding:2px 6px;background:#0009;color:#fff;font-size:.6rem;text-transform:uppercase;letter-spacing:.05em}.camera-controls{display:flex;justify-content:center;gap:var(--space-md);margin-top:var(--space-sm)}.camera-back-btn{display:block;text-align:center;margin-top:var(--space-sm);color:var(--fg-dim)}.camera-status{text-align:center;font-size:var(--font-size-sm);color:var(--fg-dim);margin-top:var(--space-sm)}.camera-status--error{color:var(--error)}.profile{width:100%}.profile-loading,.profile-error{text-align:center;padding:var(--space-2xl) 0}.profile-header{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-md);padding-bottom:var(--space-xl);margin-bottom:var(--space-xl);border-bottom:1px solid var(--border)}.profile-avatar{width:var(--avatar-xl);height:var(--avatar-xl);border-radius:var(--border-radius-full);object-fit:cover;flex-shrink:0}.profile-avatar--placeholder{display:flex;align-items:center;justify-content:center;background:var(--border);color:var(--fg);font-size:var(--font-size-2xl);font-weight:500}.profile-avatar--kaomoji{font-size:var(--font-size-lg);letter-spacing:-.05em}.profile-info{width:100%}.profile-name{font-size:var(--font-size-xl);font-weight:500;color:var(--fg);margin-bottom:var(--space-xs)}.profile-username{color:var(--fg-dim);margin-bottom:var(--space-sm)}.profile-birthday,.profile-joined{font-size:var(--font-size-sm);color:var(--fg-dim)}.profile-actions{width:100%;margin-top:var(--space-md)}.profile-actions .btn{width:100%}.profile-friends{padding:var(--space-lg);border:1px solid var(--border);margin-bottom:var(--space-xl)}.friends{max-width:var(--max-width-friends)}.friends-loading,.friends-empty{text-align:center;padding:var(--space-2xl) 0}.friends-empty-text{color:var(--fg);margin-bottom:var(--space-sm)}.friends-empty-hint{color:var(--fg-dim);font-size:var(--font-size-sm)}.friends-list{list-style:none}.friend-item{border-bottom:1px solid var(--border)}.friend-item:last-child{border-bottom:none}.friend-btn{display:flex;align-items:center;gap:var(--space-md);width:100%;padding:var(--space-md) 0;background:transparent;border:none;cursor:pointer;text-align:left;transition:background var(--transition-fast)}.friend-btn:hover{background:#ffffff05}.friend-avatar{width:48px;height:48px;border-radius:var(--border-radius-full);object-fit:cover}.friend-avatar--placeholder{display:flex;align-items:center;justify-content:center;background:var(--border);color:var(--fg);font-weight:500}.friend-avatar--kaomoji{font-size:var(--font-size-xs);letter-spacing:-.05em}.friend-info{display:flex;flex-direction:column}.friend-name{color:var(--fg);font-weight:500}.friend-username{color:var(--fg-dim);font-size:var(--font-size-sm)}.profile-invite{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--border)}.invite-code-display{display:flex;align-items:center;gap:var(--space-md);margin:var(--space-md) 0}.invite-code{font-size:var(--font-size-lg);color:var(--accent);letter-spacing:.1em}.invite-hint{font-size:var(--font-size-xs);color:var(--fg-dim);margin-top:var(--space-sm)}.profile-recent-songs{margin-top:var(--space-xl);padding:var(--space-lg);border:1px solid var(--border)}.recent-songs-list{display:flex;flex-direction:column;gap:var(--space-sm);margin-top:var(--space-md)}.recent-songs-list .music-share--compact{background:var(--bg-elevated);padding:var(--space-sm)}.profile-calendar-section{margin-top:var(--space-xl);padding:var(--space-lg);border:1px solid var(--border)}.profile-archive{margin-top:var(--space-xl)}.archive-empty{color:var(--fg-dim);text-align:center;padding:var(--space-xl) 0}.archive-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xs)}.archive-gallery-item{aspect-ratio:4 / 5;overflow:hidden;background:var(--bg-elevated);border-radius:var(--border-radius-lg);position:relative;cursor:pointer}.archive-gallery-item:hover{opacity:.85}.archive-gallery-badge{position:absolute;top:var(--space-xs);right:var(--space-xs);background:#0009;color:var(--fg);font-size:var(--font-size-xs);padding:2px 6px;border-radius:var(--border-radius-sm);z-index:1}.archive-gallery-media{width:100%;height:100%;position:relative}.archive-gallery-content{width:100%;height:100%;object-fit:contain}.archive-gallery-loading{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--fg-dim)}.archive-gallery-nav{position:absolute;top:var(--space-xs);left:0;right:0;display:flex;justify-content:center;align-items:center;gap:var(--space-xs);z-index:1}.archive-gallery-nav-btn{background:#0009;border:none;color:var(--fg);width:24px;height:24px;border-radius:var(--border-radius-full);cursor:pointer;font-size:var(--font-size-xs);display:flex;align-items:center;justify-content:center}.archive-gallery-nav-btn:disabled{opacity:.3;cursor:not-allowed}.archive-gallery-counter{font-size:var(--font-size-xs);color:var(--fg);background:#0009;padding:2px 6px;border-radius:var(--border-radius-sm)}.post-detail-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-md)}.post-detail-modal{background:var(--bg);border-radius:var(--border-radius-lg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;position:relative}.post-detail-close{position:absolute;top:var(--space-sm);right:var(--space-sm);background:#00000080;border:none;color:var(--fg);width:32px;height:32px;border-radius:var(--border-radius-full);cursor:pointer;font-size:var(--font-size-md);z-index:1;display:flex;align-items:center;justify-content:center}.post-detail-close:hover{background:#000000b3}.post-detail-media{position:relative;background:var(--bg-elevated)}.post-detail-media-content{width:100%;max-height:60vh;object-fit:contain;display:block}.post-detail-media-loading{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--fg-dim)}.post-detail-media-nav{position:absolute;bottom:var(--space-sm);left:0;right:0;display:flex;justify-content:center;align-items:center;gap:var(--space-sm)}.post-detail-nav-btn{background:#0009;border:none;color:var(--fg);width:32px;height:32px;border-radius:var(--border-radius-full);cursor:pointer;font-size:var(--font-size-sm)}.post-detail-nav-btn:disabled{opacity:.3;cursor:not-allowed}.post-detail-counter{font-size:var(--font-size-sm);color:var(--fg);background:#0009;padding:4px 10px;border-radius:var(--border-radius-sm)}.post-detail-content{padding:var(--space-md)}.post-detail-header{display:flex;align-items:center;gap:var(--space-sm);margin-bottom:var(--space-md)}.post-detail-user{font-weight:500;color:var(--fg)}.post-detail-time{color:var(--fg-dim);font-size:var(--font-size-sm)}.post-detail-music{margin-bottom:var(--space-md)}.post-detail-text{color:var(--fg);margin-bottom:var(--space-md);line-height:1.5}.post-detail-location{color:var(--fg-dim);font-size:var(--font-size-sm);margin-bottom:var(--space-md)}.post-detail-interactions{border-top:1px solid var(--border);padding-top:var(--space-md)}.notification-settings{border:1px solid var(--border);padding:var(--space-lg);margin-bottom:var(--space-xl)}.notification-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.notification-header-left{display:flex;align-items:center;gap:var(--space-md)}.notification-icon{font-size:var(--font-size-xl);color:var(--fg);flex-shrink:0}.notification-header-text{display:flex;flex-direction:column;gap:var(--space-xs)}.notification-title{font-size:var(--font-size-md);font-weight:500;color:var(--fg);text-transform:uppercase;letter-spacing:.05em}.notification-subtitle{font-size:var(--font-size-sm);color:var(--fg-dim)}.notification-loading,.notification-unsupported{color:var(--fg-dim);font-size:var(--font-size-sm);margin-top:var(--space-md)}.notification-warning{color:var(--error);font-size:var(--font-size-sm);margin-top:var(--space-md);padding:.75rem;border:1px solid var(--error);background:#aa55441a}.notification-main-toggle{position:relative;width:52px;height:28px;background:transparent;border:none;padding:0;cursor:pointer;flex-shrink:0}.notification-main-toggle .toggle-track{position:absolute;inset:0;background:var(--border);border:1px solid var(--fg-dim);transition:all var(--transition-normal) ease}.notification-main-toggle .toggle-thumb{position:absolute;top:3px;left:3px;width:20px;height:20px;background:var(--fg-dim);transition:all var(--transition-normal) ease}.notification-main-toggle.active .toggle-track{background:var(--fg);border-color:var(--fg)}.notification-main-toggle.active .toggle-thumb{left:27px;background:var(--bg)}.notification-main-toggle:hover .toggle-track{border-color:var(--fg)}.notification-main-toggle:disabled{opacity:.5;cursor:not-allowed}.notification-options{margin-top:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.notification-option{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md);padding:var(--space-md);background:#ffffff05;border:1px solid var(--border)}.notification-option-info{display:flex;flex-direction:column;gap:var(--space-xs)}.notification-option-label{font-size:var(--font-size-base);font-weight:500;color:var(--fg)}.notification-option-description{font-size:var(--font-size-sm);color:var(--fg-dim)}.notification-option-time{font-size:var(--font-size-xs);color:var(--accent);margin-top:var(--space-xs)}.notification-toggle{position:relative;width:44px;height:24px;background:transparent;border:none;padding:0;cursor:pointer;flex-shrink:0}.notification-toggle .toggle-track{position:absolute;inset:0;background:var(--border);border:1px solid var(--fg-dim);transition:all var(--transition-normal) ease}.notification-toggle .toggle-thumb{position:absolute;top:3px;left:3px;width:16px;height:16px;background:var(--fg-dim);transition:all var(--transition-normal) ease}.notification-toggle.active .toggle-track{background:var(--fg);border-color:var(--fg)}.notification-toggle.active .toggle-thumb{left:23px;background:var(--bg)}.notification-toggle:hover .toggle-track{border-color:var(--fg)}.notification-debug{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px dashed var(--border)}.notification-debug .btn--test{font-size:var(--font-size-sm);padding:var(--space-sm) var(--space-md);border-color:var(--fg-dim);color:var(--fg-dim)}.notification-debug .btn--test:hover:not(:disabled){border-color:var(--fg);color:var(--fg);background:transparent}.notification-debug .debug-info{margin-top:var(--space-md);padding:.75rem;background:#0000004d;font-size:var(--font-size-xs);color:var(--fg-dim)}.notification-debug .debug-info code{font-family:inherit}.admin-panel{max-width:var(--max-width-admin)}.admin-header{margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--border)}.admin-title{display:flex;align-items:center;gap:.75rem;font-size:var(--font-size-lg);font-weight:500;color:var(--fg);margin-bottom:var(--space-md);text-transform:uppercase;letter-spacing:.1em}.admin-icon{color:var(--admin-accent)}.admin-nav{display:flex;gap:var(--space-sm);font-size:var(--font-size-base);text-transform:uppercase}.admin-nav-btn{background:none;border:none;color:var(--fg-dim);font-family:inherit;font-size:inherit;cursor:pointer;transition:color var(--transition-fast);padding:0}.admin-nav-btn:hover{color:var(--fg)}.admin-nav-btn.active{color:var(--admin-accent)}.admin-content{min-height:400px}.admin-loading,.admin-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-2xl) 0;text-align:center}.error-icon{font-size:var(--font-size-2xl);color:var(--error)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:var(--space-md);margin-bottom:var(--space-xl)}.stat-card{border:1px solid var(--border);padding:1.25rem;text-align:center}.stat-card--highlight{border-color:var(--admin-accent);background:#bb9af70d}.stat-value{font-size:var(--font-size-2xl);font-weight:500;color:var(--fg);margin-bottom:var(--space-xs)}.stat-label{font-size:var(--font-size-xs);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.dashboard-section{margin-bottom:var(--space-xl);padding:var(--space-lg);border:1px solid var(--border)}.dashboard-columns{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.subsection-title{font-size:var(--font-size-sm);color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em;margin:var(--space-md) 0 .75rem}.activity-chart{width:100%;overflow-x:auto;margin:var(--space-md) 0}.chart-svg{width:100%;max-width:600px;height:auto}.chart-grid{stroke:var(--border);stroke-dasharray:2}.chart-label{font-size:10px;fill:var(--fg-dim)}.chart-line{fill:none;stroke-width:2}.chart-line--posts{stroke:var(--admin-accent)}.chart-line--signups{stroke:var(--info)}.chart-dot{fill:var(--bg);stroke-width:2}.chart-dot--posts{stroke:var(--admin-accent)}.chart-dot--signups{stroke:var(--info)}.chart-legend{display:flex;gap:var(--space-lg);margin-top:var(--space-sm);font-size:var(--font-size-sm);color:var(--fg-dim)}.legend-item{display:flex;align-items:center;gap:var(--space-sm)}.legend-dot{width:10px;height:10px;border-radius:var(--border-radius-full)}.legend-dot--posts{background:var(--admin-accent)}.legend-dot--signups{background:var(--info)}.chart-empty{text-align:center;color:var(--fg-dim);padding:var(--space-xl) 0}.top-posters-list{list-style:none}.top-poster-item{display:flex;align-items:center;gap:.75rem;padding:var(--space-sm) 0;border-bottom:1px solid var(--border)}.top-poster-item:last-child{border-bottom:none}.poster-rank{color:var(--fg-dim);font-size:var(--font-size-sm);width:24px}.poster-name{color:var(--fg);flex:1}.poster-username{color:var(--fg-dim);font-size:var(--font-size-sm)}.poster-count{color:var(--admin-accent);font-size:var(--font-size-sm)}.engagement-stat{display:flex;justify-content:space-between;padding:var(--space-sm) 0}.engagement-label{color:var(--fg-dim)}.engagement-value{color:var(--fg);font-weight:500}.kaomoji-list{list-style:none}.kaomoji-item{display:flex;justify-content:space-between;padding:.35rem 0}.kaomoji-face{color:var(--fg)}.kaomoji-count{color:var(--fg-dim);font-size:var(--font-size-sm)}.system-info{font-size:var(--font-size-base)}.system-row{display:flex;justify-content:space-between;padding:var(--space-sm) 0;border-bottom:1px solid var(--border)}.system-row:last-child{border-bottom:none}.system-label{color:var(--fg-dim)}.system-value{color:var(--fg)}.system-value--ok{color:var(--success)}.system-value--warn{color:var(--error)}.user-management{width:100%}.user-controls{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-lg)}.user-count{color:var(--fg-dim);font-size:var(--font-size-sm)}.user-table-wrapper{overflow-x:auto}.user-table{width:100%;border-collapse:collapse;font-size:var(--font-size-base)}.user-table th,.user-table td{text-align:left;padding:.75rem var(--space-sm);border-bottom:1px solid var(--border)}.user-table th{color:var(--fg-dim);font-weight:400;text-transform:uppercase;font-size:var(--font-size-xs);letter-spacing:.05em}.user-table th.sortable{cursor:pointer;transition:color var(--transition-fast)}.user-table th.sortable:hover{color:var(--fg)}.user-table th.sorted{color:var(--admin-accent)}.user-cell-username{color:var(--fg)}.user-cell-number{text-align:center;color:var(--fg-dim)}.user-cell-status{text-align:center}.status-dot{font-size:var(--font-size-sm)}.status-dot--active{color:var(--success)}.status-dot--inactive{color:var(--fg-dim)}.user-cell-date{color:var(--fg-dim);font-size:var(--font-size-sm)}.user-cell-actions{display:flex;gap:var(--space-sm);justify-content:flex-end}.testing-tools{width:100%}.testing-section{margin-bottom:var(--space-xl);padding:var(--space-lg);border:1px solid var(--border)}.section-icon{margin-right:var(--space-sm)}.section-description{color:var(--fg-dim);font-size:var(--font-size-base);margin-bottom:var(--space-lg)}.testing-actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-md)}.testing-action{padding:var(--space-md);background:#ffffff05;border:1px solid var(--border)}.testing-action--wide{grid-column:1 / -1}.action-title{font-size:var(--font-size-base);font-weight:500;color:var(--fg);margin-bottom:var(--space-sm)}.action-description{font-size:var(--font-size-sm);color:var(--fg-dim);margin-bottom:var(--space-md)}.action-controls{display:flex;align-items:center;gap:var(--space-sm)}.form-select{padding:var(--space-sm) var(--space-md);background:var(--bg);border:1px solid var(--border);color:var(--fg);font-family:inherit;font-size:var(--font-size-sm);cursor:pointer;min-width:100px}.form-select:focus{outline:none;border-color:var(--admin-accent)}.test-post-form{max-width:500px}.results-log{list-style:none;font-family:inherit;font-size:var(--font-size-sm)}.result-item{display:flex;gap:.75rem;padding:var(--space-sm) 0;border-bottom:1px solid var(--border)}.result-item:last-child{border-bottom:none}.result-time{color:var(--fg-dim);font-size:var(--font-size-sm)}.result-indicator{font-weight:700}.result-item--success .result-indicator{color:var(--success)}.result-item--error .result-indicator{color:var(--error-light)}.result-message{color:var(--fg)}.section-title{display:flex;align-items:center;gap:var(--space-md)}.section-title .btn--small{margin-left:auto}.invite-codes{width:100%}.invite-section{margin-bottom:var(--space-xl);padding:var(--space-lg);border:1px solid var(--border)}.section-count{color:var(--fg-dim);font-weight:400;margin-left:var(--space-sm)}.create-code-form{margin-top:var(--space-md)}.create-code-form .form-row-inline{align-items:flex-end}.invite-message{margin-top:var(--space-md);padding:var(--space-sm);font-size:var(--font-size-base)}.invite-message--success{color:var(--success);border:1px solid var(--success)}.invite-message--error{color:var(--error-light);border:1px solid var(--error)}.invite-list{list-style:none;margin-top:var(--space-md)}.invite-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--border)}.invite-item:last-child{border-bottom:none}.invite-item--active{background:#4a994a0d}.invite-item--used{opacity:.7}.invite-item--expired{opacity:.5}.invite-code-main{display:flex;align-items:center;gap:var(--space-sm);flex:1}.invite-code-value{font-size:1.1rem;font-weight:500;color:var(--success);letter-spacing:.1em}.invite-code-value--used,.invite-code-value--expired{color:var(--fg-dim)}.invite-status-badge{font-size:var(--font-size-xs);text-transform:uppercase;padding:.15rem .4rem;border-radius:var(--border-radius-sm)}.invite-status-badge--used{background:#ffffff1a;color:var(--fg-dim)}.invite-status-badge--expired{background:#a543;color:var(--error)}.invite-code-meta{display:flex;flex-direction:column;gap:var(--space-xs);font-size:var(--font-size-sm);color:var(--fg-dim);flex:2}.music-picker-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:200;padding:var(--space-md)}.music-picker{background:var(--bg);border:1px solid var(--border);width:100%;max-width:420px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.music-picker-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border)}.music-picker-header h3{font-size:var(--font-size-md);font-weight:500;color:var(--fg);text-transform:uppercase}.music-picker-search{padding:var(--space-md) var(--space-lg);border-bottom:1px solid var(--border)}.music-picker-search .form-input{width:100%}.music-picker-error{padding:var(--space-sm) var(--space-lg);color:var(--error-light);font-size:var(--font-size-sm)}.music-picker-results{flex:1;overflow-y:auto;min-height:200px}.music-picker-loading{padding:var(--space-xl);text-align:center;color:var(--fg-dim)}.music-picker-empty{padding:var(--space-2xl) var(--space-lg);text-align:center}.music-picker-empty-kaomoji{font-size:2rem;margin-bottom:var(--space-sm);opacity:.6}.music-picker-empty-text{color:var(--fg);margin-bottom:var(--space-xs)}.music-picker-empty-hint{color:var(--fg-dim);font-size:var(--font-size-sm)}.music-picker-list{list-style:none;padding:0;margin:0}.music-picker-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);cursor:pointer;transition:background var(--transition-fast);border-bottom:1px solid var(--border)}.music-picker-item:hover{background:#ffffff08}.music-picker-item:last-child{border-bottom:none}.music-picker-item-art{width:48px;height:48px;object-fit:cover;flex-shrink:0}.music-picker-item-info{flex:1;min-width:0}.music-picker-item-name{color:var(--fg);font-size:var(--font-size-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-picker-item-artist{color:var(--fg-dim);font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-picker-selected{padding:var(--space-lg);border-bottom:1px solid var(--border);background:#ffffff05}.music-picker-selected-track{display:flex;align-items:center;gap:var(--space-md);margin-bottom:var(--space-md)}.music-picker-selected-art{width:64px;height:64px;object-fit:cover;flex-shrink:0}.music-picker-selected-info{flex:1;min-width:0}.music-picker-selected-name{color:var(--fg);font-size:var(--font-size-md);font-weight:500}.music-picker-selected-artist{color:var(--fg-dim);font-size:var(--font-size-sm)}.music-picker-selected-remove{background:none;border:1px solid var(--border);color:var(--fg-dim);width:24px;height:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:var(--font-size-sm);transition:all var(--transition-fast)}.music-picker-selected-remove:hover{color:var(--fg);border-color:var(--fg)}.music-picker-mood{margin-bottom:var(--space-md)}.music-picker-mood-label{color:var(--fg-dim);font-size:var(--font-size-sm);margin-bottom:var(--space-sm)}.music-picker-mood-options{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.music-picker-mood-btn{background:transparent;border:1px solid var(--border);padding:var(--space-xs) var(--space-sm);cursor:pointer;color:var(--fg-dim);font-size:var(--font-size-base);transition:all var(--transition-fast)}.music-picker-mood-btn:hover{border-color:var(--fg-dim);color:var(--fg)}.music-picker-mood-btn.selected{border-color:var(--accent);color:var(--fg);background:#ffffff0d}.music-picker-confirm{width:100%}.music-share{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);background:#ffffff05;border:1px solid var(--border);transition:all var(--transition-fast);position:relative}.music-share:hover{background:#ffffff0a;border-color:var(--fg-dim)}.music-share--compact{padding:var(--space-sm) var(--space-md)}.music-share-art-wrapper{position:relative;flex-shrink:0}.music-share-art{width:56px;height:56px;object-fit:cover}.music-share--compact .music-share-art{width:40px;height:40px}.music-share-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0009;border:none;color:var(--fg);font-size:var(--font-size-md);cursor:pointer;opacity:0;transition:opacity var(--transition-fast)}.music-share-art-wrapper:hover .music-share-play{opacity:1}.music-share-play.playing{opacity:1;background:#000000b3}.music-share-info{flex:1;min-width:0}.music-share-track{color:var(--fg);font-size:var(--font-size-base);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-share--compact .music-share-track{font-size:var(--font-size-sm)}.music-share-artist{color:var(--fg-dim);font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-share--compact .music-share-artist{font-size:var(--font-size-xs)}.music-share-album{color:var(--fg-dim);font-size:var(--font-size-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.music-share-mood{font-size:var(--font-size-base);opacity:.8;flex-shrink:0}.music-share--compact .music-share-mood{font-size:var(--font-size-sm)}.music-share-remove{position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:var(--bg);border:1px solid var(--border);color:var(--fg);cursor:pointer;font-size:var(--font-size-sm);display:flex;align-items:center;justify-content:center;z-index:1}.music-share-remove:hover{border-color:var(--fg)}.music-share-spotify-badge{position:absolute;bottom:4px;right:4px;color:var(--fg-dim);opacity:.5}.music-share-spotify-badge svg{display:block}.create-post-music{margin-bottom:var(--space-md)}.post-music{margin:var(--space-md) 0}.list-section{margin-top:var(--space-xl)}.list-section__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-md)}.list-section__loading{color:var(--fg-dim);padding:var(--space-lg) 0}.list-section__empty{text-align:center;padding:var(--space-2xl) 0;color:var(--fg-dim)}.list-section__empty-kaomoji{display:block;font-size:var(--font-size-xl);margin-bottom:var(--space-sm)}.list-section__lists{display:flex;flex-direction:column;gap:var(--space-md)}.list-section__list-container{display:flex;flex-direction:column}.list-card{width:100%;text-align:left;background:transparent;border:1px solid var(--border);padding:var(--space-md);cursor:pointer;transition:all var(--transition-fast);font-family:inherit;color:var(--fg)}.list-card:hover{background:#ffffff05;border-color:var(--fg-dim)}.list-card--expanded{border-color:var(--accent);background:#ffffff05}.list-card__header{display:flex;align-items:center;gap:var(--space-sm)}.list-card__title{flex:1;font-weight:500;color:var(--accent)}.list-card__count{color:var(--fg-dim);font-size:var(--font-size-sm)}.list-card__expand-icon{color:var(--fg-dim);font-size:var(--font-size-xs);margin-left:var(--space-sm)}.list-card__description{color:var(--fg-dim);font-size:var(--font-size-sm);margin-top:var(--space-sm);line-height:1.4}.list-card__meta{display:flex;align-items:center;gap:var(--space-sm);margin-top:var(--space-sm);font-size:var(--font-size-xs);color:var(--fg-dim)}.list-card__locked{opacity:.7}.list-detail{border:1px solid var(--border);border-top:none;padding:var(--space-lg);background:#ffffff03}.list-detail__loading,.list-detail__error{color:var(--fg-dim);text-align:center;padding:var(--space-lg)}.list-detail__owner-actions{display:flex;gap:var(--space-md);margin-bottom:var(--space-md);font-size:var(--font-size-xs)}.list-detail__action-link{background:none;border:none;color:var(--fg-dim);cursor:pointer;font-family:inherit;font-size:inherit;text-decoration:underline;padding:0;transition:color var(--transition-fast)}.list-detail__action-link:hover{color:var(--fg)}.list-detail__action-link--danger{color:var(--error-light)}.list-detail__action-link--danger:hover{color:var(--error)}.list-detail__edit-form{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-md)}.list-detail__edit-title{padding:var(--space-sm);background:transparent;border:1px solid var(--border);color:var(--fg);font-family:inherit;font-size:var(--font-size-base)}.list-detail__edit-description{padding:var(--space-sm);background:transparent;border:1px solid var(--border);color:var(--fg);font-family:inherit;font-size:var(--font-size-base);resize:vertical}.list-detail__edit-toggle-wrapper{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.list-detail__edit-toggle-label{font-size:var(--font-size-sm);color:var(--fg-dim)}.list-detail__edit-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.list-detail__items{display:flex;flex-direction:column;gap:var(--space-md)}.list-detail__empty{text-align:center;padding:var(--space-xl) 0;color:var(--fg-dim)}.list-detail__empty-kaomoji{display:block;font-size:var(--font-size-lg);margin-bottom:var(--space-sm)}.list-detail__items-list{display:flex;flex-direction:column;gap:var(--space-xs)}.list-item-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);border:1px solid transparent;transition:all var(--transition-fast)}.list-item-row:hover{background:#ffffff05;border-color:var(--border)}.list-item-row--completed{opacity:.6}.list-item-row__main{display:flex;align-items:baseline;gap:var(--space-sm);flex:1;min-width:0}.list-item-row__checkbox{background:none;border:none;color:var(--fg-dim);cursor:pointer;font-family:monospace;font-size:var(--font-size-sm);padding:0;transition:color var(--transition-fast);flex-shrink:0;white-space:nowrap}.list-item-row__checkbox:hover{color:var(--fg)}.list-item-row__checkbox--checked{color:var(--success)}.list-item-row__bullet{color:var(--fg-dim);font-family:monospace;font-size:var(--font-size-sm);flex-shrink:0;white-space:nowrap}.list-item-row__content{flex:1;min-width:0;display:flex;flex-direction:column;gap:var(--space-xs)}.list-item-row__title{color:var(--fg);word-break:break-word}.list-item-row__title--completed{text-decoration:line-through;color:var(--fg-dim)}.list-item-row__note{font-size:var(--font-size-sm);color:var(--fg-dim);font-style:italic}.list-item-row__link{font-size:var(--font-size-sm);color:var(--info);text-decoration:none}.list-item-row__link:hover{text-decoration:underline}.list-item-row__actions{display:flex;align-items:center;gap:var(--space-sm);flex-shrink:0;min-width:120px;justify-content:flex-end}.list-item-row__added-by{font-size:var(--font-size-xs);color:var(--fg-dim);text-align:right;width:100px;display:inline-block;font-family:var(--font-mono)}.list-item-row__delete-container{width:20px;flex-shrink:0;display:inline-block;text-align:center}.list-item-row__delete{background:transparent;border:none;color:var(--fg-dim);cursor:pointer;font-size:var(--font-size-md);padding:0;width:100%;text-align:center;transition:color var(--transition-fast);opacity:0}.list-item-row:hover .list-item-row__delete{opacity:1}.list-item-row__delete-placeholder{display:inline-block;width:100%}.list-item-row__delete:hover{color:var(--error-light)}.add-list-item{display:flex;flex-direction:column;gap:var(--space-sm);padding-bottom:var(--space-md);border-bottom:1px solid var(--border);margin-bottom:var(--space-sm)}.add-list-item__main{display:flex;gap:var(--space-sm)}.add-list-item__input{flex:1;padding:var(--space-sm);background:transparent;border:1px solid var(--border);color:var(--fg);font-family:inherit;font-size:var(--font-size-base)}.add-list-item__input:focus{outline:none;border-color:var(--fg-dim)}.add-list-item__input--note,.add-list-item__input--url{font-size:var(--font-size-sm)}.add-list-item__submit{padding:var(--space-sm) var(--space-md);background:transparent;border:1px solid var(--border);color:var(--fg);cursor:pointer;font-family:inherit;transition:all var(--transition-fast)}.add-list-item__submit:hover:not(:disabled){background:#ffffff0d;border-color:var(--fg-dim)}.add-list-item__submit:disabled{opacity:.5;cursor:not-allowed}.add-list-item__extras-toggle{font-size:var(--font-size-xs)}.add-list-item__extras{display:flex;flex-direction:column;gap:var(--space-sm)}.modal-backdrop{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--space-xl)}.create-list-modal{max-width:var(--max-width-modal)}.create-list-modal .modal__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.create-list-modal .modal__header h2{font-size:var(--font-size-md);font-weight:500;color:var(--fg);text-transform:uppercase}.create-list-modal .modal__close{background:none;border:none;color:var(--fg-dim);font-size:1.5rem;cursor:pointer;transition:color var(--transition-fast)}.create-list-modal .modal__close:hover{color:var(--fg)}.create-list-form{display:flex;flex-direction:column;gap:var(--space-md)}.create-list-form__title{padding:var(--space-sm);background:transparent;border:1px solid var(--border);color:var(--fg);font-family:inherit;font-size:var(--font-size-base)}.create-list-form__description{padding:var(--space-sm);background:transparent;border:1px solid var(--border);color:var(--fg);font-family:inherit;font-size:var(--font-size-base);resize:vertical}.create-list-form__toggle-wrapper{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.create-list-form__toggle-label{font-size:var(--font-size-sm);color:var(--fg-dim)}.create-list-form__actions{display:flex;justify-content:flex-end;gap:var(--space-sm);margin-top:var(--space-sm)}.list-activity-item-wrapper{display:flex;flex-direction:column}.list-activity-item{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md);border:1px solid var(--border);background:transparent;cursor:pointer;transition:all var(--transition-fast);text-align:left;width:100%;font-family:inherit;color:var(--fg)}.list-activity-item:hover{background:#ffffff05;border-color:var(--fg-dim)}.list-activity-item--expanded{border-color:var(--accent);background:#ffffff05}.list-activity-item__icon{font-size:var(--font-size-lg);flex-shrink:0;color:var(--fg-dim)}.list-activity-item__content{flex:1;min-width:0}.list-activity-item__text{line-height:1.4}.list-activity-item__user{color:var(--accent);font-weight:500}.list-activity-item__list-title{color:var(--accent)}.list-activity-item__item-title{color:var(--fg);font-style:italic}.list-activity-item__time{font-size:var(--font-size-xs);color:var(--fg-dim);margin-top:var(--space-xs)}.list-activity-item__expand-icon{color:var(--fg-dim);font-size:var(--font-size-xs);flex-shrink:0;margin-left:var(--space-sm)}.list-activity-item__detail{border:1px solid var(--border);border-top:none;background:#ffffff03}.list-detail-view{display:flex;flex-direction:column;width:calc(100vw - var(--space-lg));max-width:500px;max-height:85vh;overflow-y:auto}.list-detail-view__header{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border)}.list-detail-view__back{display:flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);background:none;border:none;color:var(--fg-dim);font-size:var(--font-size-md);cursor:pointer;flex-shrink:0}.list-detail-view__back:active{color:var(--fg)}.list-detail-view__title-row{flex:1;display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);min-width:0}.list-detail-view__title{font-size:var(--font-size-md);font-weight:500;color:var(--accent);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-detail-view__header-actions{display:flex;gap:var(--space-xs);flex-shrink:0}.list-detail-view__meta{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);font-size:var(--font-size-xs);color:var(--fg-dim);border-bottom:1px solid var(--border);flex-shrink:0}.list-detail-view__owner-actions{padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);flex-shrink:0}.list-detail-view__edit-form{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-md);border-bottom:1px solid var(--border);flex-shrink:0}.list-detail-view__edit-input,.list-detail-view__edit-textarea{padding:var(--space-sm);background:transparent;border:1px solid var(--border);color:var(--fg);font-family:inherit;font-size:var(--font-size-base)}.list-detail-view__edit-textarea{resize:vertical}.list-detail-view__edit-toggle{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);font-size:var(--font-size-sm);color:var(--fg-dim)}.list-detail-view__edit-actions{display:flex;justify-content:flex-end;gap:var(--space-sm)}.list-detail-view__content{padding:var(--space-md)}.list-detail-view__loading,.list-detail-view__error{color:var(--fg-dim);text-align:center;padding:var(--space-xl)}.list-detail-view__empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);color:var(--fg-dim);text-align:center}.list-detail-view__empty-kaomoji{font-size:var(--font-size-xl);margin-bottom:var(--space-sm)}.list-detail-view__items{display:flex;flex-direction:column;gap:var(--space-xs)}.list-detail-view__input-bar{padding:var(--space-md);border-top:1px solid var(--border)}.list-detail-view__input-bar .add-list-item{margin-bottom:0;padding-bottom:0;border-bottom:none}.fullscreen{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;background:var(--bg);z-index:100;overflow-y:auto;padding:var(--content-padding);padding-top:calc(var(--content-padding) + var(--safe-area-top));padding-bottom:calc(var(--content-padding) + var(--safe-area-bottom))}.stack{display:flex;flex-direction:column}.stack--sm{gap:var(--space-sm)}.stack--md{gap:var(--space-md)}.stack--lg{gap:var(--space-lg)}.row{display:flex;flex-direction:row;align-items:center}.row--sm{gap:var(--space-sm)}.row--md{gap:var(--space-md)}.row--lg{gap:var(--space-lg)}.spread{justify-content:space-between}.center{justify-content:center;align-items:center}.p-0{padding:0}.p-sm{padding:var(--space-sm)}.p-md{padding:var(--space-md)}.p-lg{padding:var(--space-lg)}.mt-sm{margin-top:var(--space-sm)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mb-sm{margin-bottom:var(--space-sm)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.touch-target{min-width:var(--touch-target-min);min-height:var(--touch-target-min)}.touch-target-lg{min-width:var(--touch-target-comfortable);min-height:var(--touch-target-comfortable)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.safe-top{padding-top:var(--safe-area-top)}.safe-bottom{padding-bottom:var(--safe-area-bottom)}.safe-x{padding-left:var(--safe-area-left);padding-right:var(--safe-area-right)}.profile-calendar{width:100%;max-width:600px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.streak-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border:1px solid var(--border);background:#ffffff05}.streak-main{display:flex;align-items:center;gap:1rem}.streak-kaomoji{font-size:2rem;color:var(--fg);animation:streakPulse 3s ease-in-out infinite}@keyframes streakPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.streak-info{display:flex;flex-direction:column}.streak-count{font-size:2rem;font-weight:500;color:var(--fg);line-height:1}.streak-label{font-size:.75rem;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.streak-stats{display:flex;gap:1.5rem}.streak-stat{display:flex;flex-direction:column;align-items:flex-end}.streak-stat-value{font-size:1.2rem;font-weight:500;color:var(--fg)}.streak-stat-label{font-size:.65rem;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.calendar-section{width:100%}.profile-calendar .calendar-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.profile-calendar .calendar-nav-btn{background:transparent;border:1px solid var(--border);color:var(--fg);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1rem;font-family:inherit;transition:all .15s}.profile-calendar .calendar-nav-btn:hover:not(:disabled){background:var(--fg);color:var(--bg);border-color:var(--fg)}.profile-calendar .calendar-nav-btn:disabled{opacity:.3;cursor:not-allowed}.profile-calendar .calendar-today-btn{display:block;width:100%;background:transparent;border:1px dashed var(--border);color:var(--fg-dim);padding:.5rem;margin-bottom:1rem;font-family:inherit;font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .15s}.profile-calendar .calendar-today-btn:hover{border-color:var(--fg-dim);color:var(--fg)}.profile-calendar .calendar-month-title{font-size:.9rem;color:var(--fg);text-transform:uppercase;letter-spacing:.08em;font-weight:500;margin:0}.profile-calendar .calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:.75rem}.profile-calendar .calendar-weekday{font-size:.65rem;color:var(--fg-dim);text-align:center;text-transform:uppercase;letter-spacing:.05em;padding:.25rem 0}.profile-calendar .calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.profile-calendar .calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;border-radius:8px;font-size:.85rem;color:var(--fg);transition:all .15s;gap:2px;background:transparent;border:1px solid transparent;padding:0;font-family:inherit;cursor:default}.profile-calendar .calendar-day.other-month{opacity:.3}.profile-calendar .calendar-day.other-month .day-number{color:var(--fg-dim)}.profile-calendar .calendar-day.is-today{box-shadow:inset 0 0 0 2px var(--fg)}.profile-calendar .calendar-day.is-today .day-number{color:var(--fg);font-weight:500}.profile-calendar .day-number{font-weight:400;color:var(--fg-dim);font-size:.8rem;z-index:1}.profile-calendar .calendar-day.has-uploads{border:1px solid var(--fg-dim);cursor:pointer}.profile-calendar .calendar-day.has-uploads .day-number{color:var(--fg)}.profile-calendar .calendar-day.has-uploads:hover:not(:disabled){transform:scale(1.05);border-color:var(--fg)}.profile-calendar .calendar-day:disabled{cursor:default}.day-upload-dot{width:5px;height:5px;background:var(--accent);border-radius:50%;margin-top:2px}.day-birthday-indicator{position:absolute;bottom:2px;right:2px;font-size:.7rem;z-index:2}.calendar-legend{display:flex;justify-content:center;gap:2rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border)}.legend-item{display:flex;align-items:center;gap:.5rem}.legend-dot{width:8px;height:8px;border-radius:50%}.legend-dot--upload{background:var(--accent)}.legend-kaomoji{font-size:.75rem;color:var(--fg)}.legend-label{font-size:.7rem;color:var(--fg-dim);text-transform:uppercase;letter-spacing:.05em}.upcoming-birthdays{border:1px solid var(--border);padding:1.25rem}.upcoming-title{font-size:.8rem;color:var(--fg);text-transform:uppercase;letter-spacing:.05em;margin:0 0 1rem;font-weight:500}.upcoming-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.upcoming-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border)}.upcoming-item:last-child{border-bottom:none}.upcoming-name{color:var(--fg);font-size:.9rem}.upcoming-date{color:var(--fg-dim);font-size:.8rem}.upcoming-today{color:#f0c674;font-weight:500}.upcoming-soon{color:var(--fg);font-style:italic}.day-modal-overlay{position:fixed;inset:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.day-modal{background:var(--bg);border:1px solid var(--border);max-width:500px;width:100%;max-height:80vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp .3s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.day-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.day-modal-close{background:none;border:none;color:var(--fg);font-size:1.2rem;cursor:pointer;padding:.5rem;transition:color .15s;width:40px;font-family:inherit}.day-modal-close:hover{color:var(--accent)}.day-modal-spacer{width:40px}.day-modal-title{font-size:.8rem;color:var(--fg);font-weight:500;text-transform:uppercase;letter-spacing:.05em;margin:0}.day-modal-content{padding:1.5rem;overflow-y:auto;flex:1}.day-modal-posts{display:flex;flex-direction:column;gap:1.5rem}.day-modal-post{border:1px solid var(--border);padding:1rem}.day-modal-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.5rem;margin-bottom:1rem}.day-modal-media{width:100%;aspect-ratio:1;object-fit:cover;background:var(--border)}.day-modal-music{margin-bottom:1rem}.day-modal-music .music-share{background:#ffffff08;border:1px solid var(--border)}.day-modal-text{color:var(--fg);font-size:.9rem;line-height:1.5;margin:0 0 .5rem}.day-modal-location{color:var(--fg-dim);font-size:.8rem;margin:0 0 .5rem}.day-modal-time{color:var(--fg-dim);font-size:.75rem;text-transform:uppercase;margin:0}.debug-panel{margin-top:2rem;padding:1rem;border:1px dashed #f0a;background:#ff00aa0d;display:flex;flex-direction:column;gap:.75rem}.debug-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.debug-label{color:#f0a;font-size:.7rem;font-weight:600;letter-spacing:.1em}.debug-toggle{background:transparent;border:1px solid #f0a;color:#f0a;padding:.4rem .8rem;font-family:inherit;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;transition:all .15s}.debug-toggle:hover{background:#f0a3}.debug-toggle.active{background:#f0a;color:var(--bg)}.debug-info{color:#f0a;font-size:.7rem;opacity:.7}@media(max-width:480px){.streak-header{flex-direction:column;gap:1.5rem;text-align:center}.streak-main{flex-direction:column}.streak-stats{width:100%;justify-content:space-around}.streak-stat{align-items:center}.profile-calendar .calendar-grid{gap:3px}.profile-calendar .calendar-day{border-radius:6px;font-size:.75rem}.calendar-legend{gap:1rem}.day-modal-media-grid{grid-template-columns:repeat(2,1fr)}}
