*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--indigo:#6c63ff;--indigo-dim:#4e47cc;--green:#22d3a0;--bg:#0a0a0f;--surface:#1a1a26;--surface2:#22222f;--border:#2e2e3e;--text:#f0f0ff;--text-mid:#c0c0d8;--text-dim:#9090b0;--error:#f87171;--radius-lg:16px;--radius-md:10px;--radius-sm:6px}[data-theme=light]{--bg:#f4f4fa;--surface:#fff;--surface2:#ebebf5;--border:#dcdce8;--text:#12121e;--text-mid:#44446a;--text-dim:#7070a0}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-font-smoothing:antialiased;font-family:Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px}.center-screen{flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;display:flex}.center-inline{justify-content:center;padding:40px;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--indigo);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text-dim);font-size:.9rem}button{cursor:pointer;border:none;font-family:inherit;font-size:.9rem;transition:opacity .15s,background .15s}button:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--indigo);color:#fff;border-radius:var(--radius-sm);padding:10px 20px;font-weight:500}.btn-primary:hover:not(:disabled){background:var(--indigo-dim)}.btn-secondary{background:var(--surface2);color:var(--text);border-radius:var(--radius-sm);border:1px solid var(--border);padding:10px 20px}.btn-secondary:hover:not(:disabled){background:var(--border)}.btn-ghost{color:var(--text-dim);border-radius:var(--radius-sm);background:0 0;padding:10px 16px}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--surface2)}.btn-large{border-radius:var(--radius-md);width:100%;padding:14px 28px;font-size:1rem}.btn-small{padding:6px 12px;font-size:.82rem}.btn-icon{background:var(--surface2);color:var(--text-dim);border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:8px;display:flex}.btn-icon:hover{color:var(--text);background:var(--border)}.btn-google{background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:center;align-items:center;gap:10px;width:100%;padding:12px 20px;font-size:.95rem;display:flex}.btn-google:hover{background:var(--surface2)}.text-input{background:var(--surface2);border:1px solid var(--border);width:100%;color:var(--text);border-radius:var(--radius-md);outline:none;padding:12px 14px;font-family:inherit;font-size:1rem;transition:border-color .15s}.text-input:focus{border-color:var(--indigo)}.text-input::placeholder{color:var(--text-dim)}.code-input{letter-spacing:.15em;text-align:center;font-size:1.8rem;font-weight:600}.modal-overlay{z-index:100;background:#000000a6;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:14px;width:100%;max-width:400px;padding:28px 24px;display:flex}.qr-modal{text-align:center;align-items:center}.modal-title{font-size:1.2rem;font-weight:600}.modal-subtitle{color:var(--text-dim);margin-top:-6px;font-size:.88rem}.modal-hint{color:var(--text-dim);font-size:.82rem}.modal-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.error-text{color:var(--error);font-size:.85rem}.landing-page{justify-content:center;align-items:center;min-height:100%;padding:24px 16px;display:flex}.landing-card{flex-direction:column;gap:16px;width:100%;max-width:360px;display:flex}.brand{align-items:center;gap:12px;margin-bottom:4px;display:flex}.brand-icon{font-size:2rem}.brand-name{letter-spacing:-.5px;font-size:1.8rem;font-weight:700}.brand-tagline{color:var(--text-dim);margin-top:-8px;font-size:.95rem}.landing-actions{flex-direction:column;gap:10px;margin-top:12px;display:flex}.divider{color:var(--text-dim);align-items:center;gap:12px;font-size:.85rem;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.auth-row{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.auth-user{color:var(--text-mid);text-overflow:ellipsis;white-space:nowrap;font-size:.88rem;overflow:hidden}.auth-benefit{color:var(--green);text-align:center;font-size:.8rem}.session-page{flex-direction:column;max-width:680px;height:100%;margin:0 auto;padding:0 0 16px;display:flex}.session-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 16px 12px;display:flex}.session-header-left{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.session-header-actions{align-items:center;gap:4px;display:flex}.share-btn{color:var(--indigo)}.session-name{white-space:nowrap;text-overflow:ellipsis;font-size:1.1rem;font-weight:600;overflow:hidden}.session-code-row{align-items:center;gap:10px;display:flex}.code-badge{background:var(--surface2);color:var(--indigo);border:1px solid var(--border);border-radius:var(--radius-sm);letter-spacing:.08em;cursor:pointer;padding:3px 10px;font-size:.9rem;font-weight:600}.code-badge:hover{background:var(--border)}.device-count{color:var(--text-dim);font-size:.8rem}.board{flex:1;padding:12px 16px;overflow-y:auto}.empty-board{flex-direction:column;justify-content:center;align-items:center;gap:10px;height:100%;min-height:220px;display:flex}.empty-board-icon{color:var(--text-dim);opacity:.5}.empty-board-text{color:var(--text-dim);font-size:1rem;font-weight:600}.empty-board-sub{color:var(--text-dim);opacity:.7;text-align:center;max-width:280px;font-size:.85rem;line-height:1.5}.clips-list{flex-direction:column;gap:10px;display:flex}.clip-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;padding:14px 16px;transition:border-color .15s,background .15s}.clip-card:hover{border-color:var(--indigo);background:var(--surface2)}.clip-link{color:var(--indigo);text-underline-offset:2px;word-break:break-all;text-decoration:underline}.clip-link:hover{opacity:.8}.clip-content{color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:80px;margin-bottom:10px;font-size:.95rem;line-height:1.6;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,#0000 100%);mask-image:linear-gradient(#000 60%,#0000 100%)}.clip-meta{align-items:center;gap:10px;font-size:.78rem;display:flex}.clip-source{color:var(--text-dim)}.clip-time{color:var(--text-dim);flex:1}.clip-copy-hint{color:var(--indigo);font-weight:500}.clip-copy-hint.copied{color:var(--green)}.clip-expand-overlay{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0000008c;justify-content:center;align-items:center;padding:24px 16px;display:flex;position:fixed;inset:0}.clip-expand-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;width:100%;max-width:560px;max-height:80vh;display:flex;box-shadow:0 24px 64px #0006}.clip-expand-header{border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.clip-expand-meta{align-items:center;gap:10px;font-size:.82rem;display:flex}.clip-expand-close{color:var(--text-dim);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:4px 6px;font-size:.9rem;line-height:1}.clip-expand-close:hover{background:var(--surface2);color:var(--text)}.clip-expand-body{flex:1;padding:20px;overflow-y:auto}.clip-expand-text{color:var(--text);white-space:pre-wrap;word-break:break-word;font-size:.95rem;line-height:1.7}.paste-area{border-top:1px solid var(--border);padding:12px 16px 0}.paste-input-container{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.paste-input-container:focus-within{border-color:var(--indigo)}.paste-textarea{width:100%;color:var(--text);resize:none;background:0 0;border:none;outline:none;padding:14px 16px 8px;font-family:inherit;font-size:.95rem;line-height:1.5}.paste-textarea::placeholder{color:var(--text-dim)}.paste-input-footer{justify-content:space-between;align-items:center;padding:6px 10px 10px;display:flex}.char-count{color:var(--text-dim);font-size:.78rem}.char-count.warn{color:var(--error)}.paste-actions{gap:6px;display:flex}.qr-code-text{letter-spacing:.15em;color:var(--indigo);font-size:2rem;font-weight:700}.clip-card--pinned{border-color:var(--indigo);background:color-mix(in srgb, var(--indigo) 6%, var(--surface))}.clip-actions{gap:4px;margin-left:auto;display:flex}.clip-action-btn{border-radius:var(--radius-sm);cursor:pointer;opacity:.65;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:background .12s,opacity .12s;display:flex}.clip-action-btn:hover{background:var(--surface2);opacity:1}.clip-action-btn--copy{color:#60a5fa}.clip-action-btn--pin{color:#fbbf24}.clip-action-btn--delete{color:#f87171}.clip-action-btn--copied{opacity:1;color:var(--green)}.clip-action-btn--pinned{opacity:1;color:#fbbf24}.session-name-row{align-items:center;gap:6px;display:flex}.btn-edit-name{color:var(--text-dim);border-radius:var(--radius-sm);cursor:pointer;opacity:0;background:0 0;border:none;padding:2px 4px;font-size:.85rem;transition:opacity .15s}.session-header:hover .btn-edit-name{opacity:1}.btn-edit-name:hover{color:var(--text);background:var(--surface2)}.session-name-input{height:auto;padding:4px 8px;font-size:1.1rem;font-weight:600}.btn-device-name{color:var(--text-dim);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:.78rem}.btn-device-name:hover{background:var(--surface2);color:var(--text)}.device-name-input{max-width:120px;height:auto;padding:2px 6px;font-size:.78rem}.join-tabs{background:var(--surface2);border-radius:var(--radius-md);gap:0;padding:3px;display:flex}.join-tab{color:var(--text-dim);border-radius:calc(var(--radius-md) - 3px);cursor:pointer;background:0 0;border:none;flex:1;padding:8px 12px;font-size:.88rem;transition:background .15s,color .15s}.join-tab--active{background:var(--surface);color:var(--text);font-weight:500}.qr-scanner-wrapper{width:100%}.qr-video{border-radius:var(--radius-md);background:var(--surface2);width:100%;display:block}.history-page{flex-direction:column;gap:20px;max-width:680px;min-height:100%;margin:0 auto;padding:20px 16px;display:flex}.history-header{align-items:center;gap:14px;display:flex}.history-title{font-size:1.2rem;font-weight:600}.history-list{flex-direction:column;gap:20px;display:flex}.history-session{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.history-session-header{border-bottom:1px solid var(--border);border-left:4px solid var(--indigo);background:color-mix(in srgb, var(--indigo) 6%, var(--surface));flex-direction:column;gap:4px;padding:14px 16px 12px 20px;display:flex}.history-session-label{text-transform:uppercase;letter-spacing:.1em;color:var(--indigo);opacity:.8;font-size:.68rem;font-weight:700}.history-session-name{font-size:1rem;font-weight:700}.history-session-meta{color:var(--text-dim);font-size:.78rem}.history-session-code{color:var(--indigo);letter-spacing:.05em;font-weight:600}.history-empty{color:var(--text-dim);padding:12px 16px;font-size:.85rem}.history-clips{flex-direction:column;display:flex}.history-clip{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 16px;transition:background .12s;display:flex}.history-clip:last-child{border-bottom:none}.history-clip:hover{background:var(--surface2)}.history-clip-body{flex:1;min-width:0}.history-clip-content{color:var(--text);white-space:pre-wrap;word-break:break-word;max-height:80px;margin-bottom:4px;font-size:.88rem;overflow:hidden}.history-clip-meta{color:var(--text-dim);font-size:.75rem}.history-copy-btn{border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius-sm);cursor:pointer;background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:6px;transition:color .15s,border-color .15s,background .15s;display:flex}.history-copy-btn:hover{color:var(--text);border-color:var(--indigo);background:color-mix(in srgb, var(--indigo) 8%, transparent)}.history-copy-btn--copied{color:var(--green)!important;border-color:var(--green)!important}.history-link{text-align:center;width:100%}.dashboard{flex-direction:column;min-height:100%;display:flex}.dash-header{border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.dash-brand{letter-spacing:-.3px;align-items:center;gap:8px;font-size:1.1rem;font-weight:700;display:flex}.dash-profile{align-items:center;gap:10px;display:flex}.theme-toggle{width:34px;height:34px}.dash-avatar{background:var(--indigo);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex;overflow:hidden}.dash-avatar-img{object-fit:cover;width:100%;height:100%}.dash-avatar-initials{color:#fff;font-size:.8rem;font-weight:700}.dash-profile-info{flex-direction:column;gap:1px;min-width:0;display:flex}.dash-profile-name{white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:.88rem;font-weight:500;overflow:hidden}.dash-profile-email{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;max-width:160px;font-size:.75rem;overflow:hidden}.dash-body{flex-direction:column;flex:1;gap:32px;width:100%;max-width:780px;margin:0 auto;padding:28px 24px;display:flex}.dash-actions{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.dash-action-btn{border-radius:var(--radius-lg);border:1px solid var(--border);text-align:left;cursor:pointer;align-items:center;gap:14px;padding:18px 16px;transition:border-color .15s,background .15s,transform .1s;display:flex}.dash-action-btn:hover{transform:translateY(-1px)}.dash-action-btn:active{transform:translateY(0)}.dash-action-btn--primary{background:var(--indigo);border-color:var(--indigo);color:#fff}.dash-action-btn--primary:hover{background:var(--indigo-dim);border-color:var(--indigo-dim)}.dash-action-btn--secondary{background:var(--surface);color:var(--text)}.dash-action-btn--secondary:hover{background:var(--surface2);border-color:var(--indigo)}.dash-action-btn--ghost{background:var(--surface);color:var(--text)}.dash-action-btn--ghost:hover{background:var(--surface2)}.dash-action-icon{text-align:center;flex-shrink:0;width:28px;font-size:1.4rem}.dash-action-label{font-size:.92rem;font-weight:600}.dash-action-sub{opacity:.65;margin-top:2px;font-size:.75rem}.dash-section{flex-direction:column;gap:12px;display:flex}.dash-section-title{text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);font-size:.8rem;font-weight:600}.dash-empty{color:var(--text-dim);padding:20px 0;font-size:.88rem}.dash-cards{flex-direction:column;gap:8px;display:flex}.dash-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);justify-content:space-between;align-items:center;gap:16px;padding:14px 16px;transition:border-color .15s;display:flex}.dash-card:hover{border-color:var(--indigo)}.dash-card--active{border-color:color-mix(in srgb, var(--indigo) 40%, var(--border));background:color-mix(in srgb, var(--indigo) 4%, var(--surface))}.dash-card-left{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.dash-card-name{white-space:nowrap;text-overflow:ellipsis;font-size:.95rem;font-weight:500;overflow:hidden}.dash-card-meta{color:var(--text-dim);flex-wrap:wrap;align-items:center;gap:6px;font-size:.78rem;display:flex}.dash-card-code{color:var(--indigo);letter-spacing:.06em;font-weight:600}.dash-card-dot{opacity:.4}.dash-card-actions{flex-shrink:0;align-items:center;gap:8px;display:flex}.dash-delete-btn{border:1px solid var(--border);color:var(--text-dim);border-radius:var(--radius-sm);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:6px;transition:color .15s,border-color .15s,background .15s;display:flex}.dash-delete-btn:hover{color:var(--error);border-color:var(--error);background:color-mix(in srgb, var(--error) 8%, transparent)}@media (width<=560px){.dash-header{padding:12px 16px}.dash-profile-info{display:none}.dash-body{gap:24px;padding:20px 16px}.dash-actions{grid-template-columns:1fr}.dash-action-btn{padding:14px 12px}}
