:root{--color-primary: #0052cc;--color-primary-hover: #0747a6;--color-primary-active: #003d99;--color-success: #36b37e;--color-warning: #ffab00;--color-error: #de350b;--color-info: #0065ff;--color-text-primary: #172b4d;--color-text-secondary: #6b778c;--color-background: #ffffff;--color-surface: #f4f5f7;--color-border: #dfe1e6;--font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Noto Sans JP", sans-serif;--font-size-h1: 1.5rem;--font-size-h2: 1.25rem;--font-size-h3: 1rem;--font-size-body: .875rem;--font-size-small: .75rem;--line-height-heading: 1.2;--line-height-body: 1.5;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-xxl: 48px;--border-radius-sm: 4px;--border-radius-md: 8px;--shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--transition-fast: .15s ease-out;--transition-normal: .3s ease-out}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-family);font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text-primary);background-color:var(--color-background);min-height:100vh}h1,h2,h3,h4,h5,h6{line-height:var(--line-height-heading);font-weight:600}h1{font-size:var(--font-size-h1)}h2{font-size:var(--font-size-h2)}h3{font-size:var(--font-size-h3)}p{margin-bottom:var(--spacing-sm)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;outline:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-sm);font-weight:500;transition:background-color var(--transition-fast),border-color var(--transition-fast),opacity var(--transition-fast)}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn--primary{background-color:var(--color-primary);color:#fff}.btn--primary:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn--primary:active:not(:disabled){background-color:var(--color-primary-active)}.btn--secondary{background-color:transparent;color:var(--color-primary);border:1px solid var(--color-primary)}.btn--secondary:hover:not(:disabled){background-color:var(--color-surface)}.btn--icon{width:40px;height:40px;padding:0;border-radius:var(--border-radius-sm);background-color:transparent;color:var(--color-text-primary)}.btn--icon:hover:not(:disabled){background-color:var(--color-surface)}input,textarea{font-family:inherit;font-size:inherit}.input{width:100%;height:40px;padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);background-color:var(--color-background);color:var(--color-text-primary);transition:border-color var(--transition-fast)}.input::placeholder{color:var(--color-text-secondary)}.input:focus{outline:none;border-color:var(--color-primary)}.input--error{border-color:var(--color-error)}.card{background-color:var(--color-surface);border-radius:var(--border-radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-md)}.connection-status{display:inline-flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--border-radius-sm);font-size:var(--font-size-small);font-weight:500}.connection-status-icon{flex-shrink:0}.connection-status--connected{color:var(--color-success);background-color:#36b37e1a}.connection-status--connecting{color:var(--color-info);background-color:#0065ff1a}.connection-status--waiting{color:var(--color-warning);background-color:#ffab001a}.connection-status--disconnected{color:var(--color-error);background-color:#de350b1a}.progress-bar-container{display:flex;align-items:center;gap:var(--spacing-sm);width:100%}.progress-bar-track{flex:1;background-color:var(--color-surface);border-radius:var(--border-radius-sm);overflow:hidden}.progress-bar-fill{height:100%;background-color:var(--color-primary);border-radius:var(--border-radius-sm)}.progress-bar-fill--animated{transition:width var(--transition-normal)}.progress-bar-percentage{font-size:var(--font-size-small);color:var(--color-text-secondary);min-width:40px;text-align:right}.qr-code-display{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--color-background);border-radius:var(--border-radius-md);padding:var(--spacing-md)}.qr-code-display--loading,.qr-code-display--error{border:1px dashed var(--color-border)}.qr-code-image{display:block;border-radius:var(--border-radius-sm)}.qr-code-loading-spinner{width:32px;height:32px;border:3px solid var(--color-surface);border-top-color:var(--color-primary);border-radius:50%;animation:spin 1s linear infinite}.qr-code-loading-text,.qr-code-error-text{margin-top:var(--spacing-sm);font-size:var(--font-size-small);color:var(--color-text-secondary)}.qr-code-error-text{color:var(--color-error)}.file-list{width:100%}.file-list-title{font-size:var(--font-size-h3);margin-bottom:var(--spacing-md)}.file-list-items{display:flex;flex-direction:column;gap:var(--spacing-sm)}.file-list--empty{display:flex;align-items:center;justify-content:center;min-height:120px}.file-list-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary)}.file-list-empty-icon{opacity:.5}.file-list-empty-text{font-size:var(--font-size-small)}.file-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-background);border:1px solid var(--color-border);border-radius:var(--border-radius-sm);min-height:48px}.file-item--failed{border-color:var(--color-error);background-color:#de350b0d}.file-item-icon-container{flex-shrink:0;color:var(--color-text-secondary)}.file-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-item-name{font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-item-size{font-size:var(--font-size-small);color:var(--color-text-secondary)}.file-item-progress{width:80px}.file-item-status{font-size:var(--font-size-small)}.file-item-status-text--failed{color:var(--color-error)}.file-item-status-text--receiving{color:var(--color-info)}.file-item-download-button{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--border-radius-sm);background-color:var(--color-primary);color:#fff;transition:background-color var(--transition-fast)}.file-item-download-button:hover{background-color:var(--color-primary-hover)}.message-list{width:100%}.message-list-title{font-size:var(--font-size-h3);margin-bottom:var(--spacing-md)}.message-list-items{display:flex;flex-direction:column;gap:var(--spacing-sm)}.message-list--empty{display:flex;align-items:center;justify-content:center;min-height:120px}.message-list-empty-state{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);color:var(--color-text-secondary)}.message-list-empty-icon{opacity:.5}.message-list-empty-text{font-size:var(--font-size-small)}.message-item{display:flex;max-width:80%}.message-item--own{margin-left:auto}.message-item--other{margin-right:auto}.message-item-bubble{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--border-radius-md);max-width:100%}.message-item--own .message-item-bubble{background-color:var(--color-primary);color:#fff;border-bottom-right-radius:var(--spacing-xs)}.message-item--other .message-item-bubble{background-color:var(--color-surface);color:var(--color-text-primary);border-bottom-left-radius:var(--spacing-xs)}.message-item--sending .message-item-bubble{opacity:.7}.message-item--failed .message-item-bubble{background-color:#de350b1a;border:1px solid var(--color-error)}.message-item-text{word-wrap:break-word;margin-bottom:var(--spacing-xs)}.message-item-meta{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-small)}.message-item--own .message-item-meta{justify-content:flex-end;opacity:.8}.message-item--other .message-item-time{color:var(--color-text-secondary)}.message-item-status--sending{font-style:italic}.message-item-status--failed{color:var(--color-error)}.container{width:100%;max-width:800px;margin:0 auto;padding:var(--spacing-md)}.section{margin-bottom:var(--spacing-xl)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}@media(max-width:599px){:root{--font-size-h1: 1.25rem;--font-size-h2: 1.125rem}.container{padding:var(--spacing-sm)}.message-item{max-width:90%}}@media(min-width:600px)and (max-width:1023px){.container{padding:var(--spacing-lg)}}@media(min-width:1024px){.container{padding:var(--spacing-xl)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.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}
