:root{--bg: #0f0f1a;--bg-card: #1a1a2e;--bg-card-hover: #20203a;--bg-elevated: #252540;--accent: #7c3aed;--accent-hover: #6d28d9;--accent-light: rgba(124, 58, 237, .15);--pink: #ec4899;--text: #f1f5f9;--text-muted: #94a3b8;--text-faint: #4a5568;--border: #2d2d4e;--danger: #ef4444;--danger-hover: #dc2626;--warning: #f59e0b;--warning-hover: #d97706;--success: #10b981;--success-hover: #059669;--radius: 12px;--radius-sm: 8px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:system-ui,-apple-system,Segoe UI,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;overscroll-behavior:none}.loading-screen{height:100%;display:flex;align-items:center;justify-content:center}.spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading{padding:2rem;text-align:center;color:var(--text-muted)}.page{display:flex;flex-direction:column;height:100%;min-height:100dvh}.container{max-width:600px;width:100%;margin:0 auto;padding:1rem}.header{background:var(--bg-card);border-bottom:1px solid var(--border);padding:0 1rem;flex-shrink:0}.header-content{max-width:600px;margin:0 auto;height:56px;display:flex;align-items:center;justify-content:space-between}.header-title{font-size:1.1rem;font-weight:700;display:flex;align-items:center;gap:.5rem;color:var(--text)}.header-logo{font-size:1.3rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.55rem 1rem;border-radius:var(--radius-sm);font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:background .15s,opacity .15s,transform .1s;white-space:nowrap;min-height:40px;-webkit-tap-highlight-color:transparent}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-warning{background:var(--warning);color:#000}.btn-warning:hover:not(:disabled){background:var(--warning-hover)}.btn-success{background:var(--success);color:#fff}.btn-success:hover:not(:disabled){background:var(--success-hover)}.btn-ghost{background:transparent;color:var(--text-muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--bg-elevated);color:var(--text)}.btn-sm{padding:.35rem .7rem;font-size:.8rem;min-height:32px}.btn-full{width:100%}.btn-link{background:none;border:none;color:var(--accent);font-size:.9rem;cursor:pointer;padding:.3rem;text-decoration:underline;text-underline-offset:2px}.btn-link:hover{color:var(--pink)}.btn-icon{background:none;border:none;cursor:pointer;color:var(--text-muted);font-size:1rem;padding:.4rem;border-radius:6px;line-height:1;-webkit-tap-highlight-color:transparent}.btn-icon:hover{background:var(--bg-elevated);color:var(--text)}.btn-nav{background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);font-size:1.5rem;width:56px;height:56px;border-radius:50%;cursor:pointer;transition:background .15s;-webkit-tap-highlight-color:transparent}.btn-nav:hover:not(:disabled){background:var(--accent);border-color:var(--accent)}.btn-nav:disabled{opacity:.3;cursor:not-allowed}.input,.textarea{width:100%;background:var(--bg-elevated);border:1px solid var(--border);color:var(--text);padding:.65rem .85rem;border-radius:var(--radius-sm);font-size:1rem;font-family:inherit;transition:border-color .15s;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.input:focus,.textarea:focus{border-color:var(--accent)}.textarea{resize:vertical;min-height:100px}.input-group{position:relative;display:flex;align-items:center}.input-group .input{padding-right:3rem}.input-group .btn-icon{position:absolute;right:.4rem}.form-group{display:flex;flex-direction:column;gap:.4rem;position:relative}.form-label{font-size:.85rem;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.char-count{position:absolute;bottom:.5rem;right:.75rem;font-size:.75rem;color:var(--text-faint);pointer-events:none}.error-message{color:var(--danger);font-size:.85rem;padding:.4rem 0}.success-message{color:var(--success);font-size:.9rem;padding:.4rem 0;font-weight:600}.error-card{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:var(--danger);padding:1rem;border-radius:var(--radius-sm);margin:1rem;font-size:.9rem}.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}.empty-state.success-state{color:var(--success)}.password-gate{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:radial-gradient(ellipse at top,#1a0a3c 0%,var(--bg) 70%)}.password-gate-card{width:100%;max-width:380px;background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:.6rem}.app-logo{font-size:3.5rem;line-height:1;margin-bottom:.5rem}.app-title{font-size:1.6rem;font-weight:800;text-align:center;background:linear-gradient(135deg,var(--accent) 0%,var(--pink) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.app-subtitle{color:var(--text-muted);font-size:.9rem;text-align:center;margin-bottom:.8rem}.password-form{width:100%;display:flex;flex-direction:column;gap:.75rem;margin-top:.5rem}.password-gate-footer{margin-top:.75rem;text-align:center}.submit-main{flex:1;overflow-y:auto}.submit-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1rem}.submit-title{font-size:1.2rem;font-weight:700;margin-bottom:.25rem}.submit-hint{color:var(--text-muted);font-size:.875rem;margin-bottom:1.25rem}.submit-form{display:flex;flex-direction:column;gap:1rem}.info-card{background:var(--accent-light);border:1px solid rgba(124,58,237,.3);border-radius:var(--radius-sm);padding:.75rem 1rem;text-align:center}.info-text{color:var(--text-muted);font-size:.85rem}.tabs{display:flex;background:var(--bg-card);border-bottom:1px solid var(--border);overflow-x:auto;scrollbar-width:none;flex-shrink:0}.tabs::-webkit-scrollbar{display:none}.tab{flex:1;min-width:70px;display:flex;flex-direction:column;align-items:center;gap:2px;padding:.65rem .5rem;background:none;border:none;border-bottom:3px solid transparent;color:var(--text-muted);font-size:.75rem;font-weight:600;cursor:pointer;transition:color .15s,border-color .15s;-webkit-tap-highlight-color:transparent;white-space:nowrap}.tab-icon{font-size:1.1rem}.tab-active{color:var(--accent);border-bottom-color:var(--accent)}.tab-content{flex:1;overflow-y:auto}.card-list{max-width:600px;margin:0 auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.list-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap}.list-title{font-size:1rem;font-weight:700;color:var(--text-muted)}.card-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;display:flex;flex-direction:column;gap:.4rem;transition:border-color .15s}.card-item-clickable{cursor:pointer}.card-item-clickable:hover{border-color:var(--accent)}.card-item-selected{border-color:var(--accent);background:var(--accent-light)}.card-item-archived{opacity:.75}.card-item-text{font-size:.95rem;line-height:1.4;color:var(--text)}.card-prefix{color:var(--text-muted);font-size:.8rem;font-style:italic;display:block;margin-bottom:2px}.card-number{color:var(--text-faint);font-size:.8rem;margin-right:.25rem}.card-item-meta{font-size:.78rem;color:var(--pink);font-weight:500}.card-item-date{font-size:.75rem;color:var(--text-faint)}.card-item-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.slideshow-fullscreen{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);display:flex;flex-direction:column;z-index:100}.slideshow-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:rgba(15,15,26,.9);flex-shrink:0}.slideshow-counter{font-size:.9rem;font-weight:600;color:var(--text-muted)}.slideshow-header-actions{display:flex;gap:.4rem}.slideshow-progress{height:3px;background:var(--border);flex-shrink:0}.slideshow-progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--pink));transition:width .3s ease}.slideshow-body{flex:1;display:flex;align-items:center;justify-content:center;padding:2rem;overflow:hidden}.slideshow-card{background:var(--bg-card);border:1px solid var(--border);border-radius:20px;padding:2.5rem 2rem;max-width:500px;width:100%;text-align:center;box-shadow:0 20px 60px #00000080}.slideshow-prefix{display:block;color:var(--text-muted);font-size:1rem;font-style:italic;margin-bottom:1rem}.slideshow-text{font-size:clamp(1.4rem,4vw,2.2rem);font-weight:700;line-height:1.3;color:var(--text)}.slideshow-submitter{display:block;margin-top:1.25rem;font-size:.85rem;color:var(--pink)}.slideshow-nav{display:flex;align-items:center;justify-content:center;gap:1.5rem;padding:1.5rem;flex-shrink:0}.slideshow-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:1.2rem}.duplicate-pair{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:1rem;display:flex;flex-direction:column;gap:.75rem}.duplicate-header{display:flex;align-items:center;justify-content:space-between}.similarity-badge{background:rgba(245,158,11,.15);color:var(--warning);border:1px solid rgba(245,158,11,.3);padding:.2rem .6rem;border-radius:20px;font-size:.78rem;font-weight:700}.duplicate-cards{display:flex;flex-direction:column;gap:.5rem}.duplicate-card{background:var(--bg-elevated);border-radius:var(--radius-sm);padding:.75rem;display:flex;flex-direction:column;gap:.4rem}.duplicate-vs{text-align:center;color:var(--text-faint);font-size:1.4rem;font-weight:700}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}@media (min-width: 640px){.duplicate-cards{flex-direction:row;align-items:flex-start}.duplicate-card{flex:1}.duplicate-vs{display:flex;align-items:center;padding-top:.5rem;flex-shrink:0}}.gap-2{gap:.5rem}.flex{display:flex}.flex-wrap{flex-wrap:wrap}
