:root{--bg-color:#0b0f19;--card-bg:#141d2fb3;--card-border:#ffffff14;--text-main:#f8fafc;--text-muted:#94a3b8;--accent:#10b981;--accent-glow:#10b98140;--font-family:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);font-family:var(--font-family);min-height:100vh;padding:calc(env(safe-area-inset-top) + 20px) calc(env(safe-area-inset-right) + 20px) calc(env(safe-area-inset-bottom) + 20px) calc(env(safe-area-inset-left) + 20px);background-image:radial-gradient(circle at 10% 20%,#10b9810d 0%,#0000 40%),radial-gradient(circle at 90% 80%,#6366f10d 0%,#0000 40%);flex-direction:column;justify-content:flex-start;align-items:center;display:flex;overflow-x:hidden}.app-card{background:var(--card-bg);-webkit-backdrop-filter:blur(16px);border:1px solid var(--card-border);border-radius:28px;flex-direction:column;gap:20px;width:100%;max-width:480px;margin-top:20px;padding:24px;display:flex;box-shadow:0 20px 40px #0000004d}header{text-align:center}h1{letter-spacing:-.025em;background:linear-gradient(135deg,#fff 0%,#a5f3fc 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.5rem;font-weight:800}p.subtitle{color:var(--text-muted);margin-top:4px;font-size:.85rem}.tabs{background:#0003;border:1px solid #ffffff0d;border-radius:14px;padding:4px;display:flex}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;padding:10px;font-size:.9rem;font-weight:600;transition:all .2s cubic-bezier(.4,0,.2,1)}.tab-btn.active{color:var(--text-main);background:#ffffff14;box-shadow:0 4px 12px #0000001a}.view-panel{flex-direction:column;gap:16px;display:none}.view-panel.active{animation:.25s ease-out forwards fadeIn;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.camera-container{aspect-ratio:1;background:#020617;border:1px solid #ffffff0d;border-radius:20px;width:100%;position:relative;overflow:hidden}#video{object-fit:cover;width:100%;height:100%}.scanner-overlay{pointer-events:none;border:2px solid #ffffff0d;border-radius:20px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.scan-reticle{border:1.5px solid #ffffff26;border-radius:16px;width:70%;height:70%;position:relative}.laser-line{background:var(--accent);width:100%;height:2px;box-shadow:0 0 12px var(--accent);will-change:top, opacity;animation:2.2s linear infinite scanLaser;position:absolute;top:0}@keyframes scanLaser{0%{opacity:0;top:0%}10%{opacity:1}90%{opacity:1}to{opacity:0;top:100%}}.corner{border:3px solid var(--accent);width:16px;height:16px;position:absolute}.top-left{border-bottom:none;border-right:none;border-top-left-radius:8px;top:-2px;left:-2px}.top-right{border-bottom:none;border-left:none;border-top-right-radius:8px;top:-2px;right:-2px}.bottom-left{border-top:none;border-right:none;border-bottom-left-radius:8px;bottom:-2px;left:-2px}.bottom-right{border-top:none;border-left:none;border-bottom-right-radius:8px;bottom:-2px;right:-2px}textarea{border:1px solid var(--card-border);width:100%;color:var(--text-main);resize:none;background:#0003;border-radius:12px;outline:none;min-height:90px;padding:12px;font-family:inherit;font-size:.9rem;transition:border-color .2s}textarea:focus{border-color:var(--accent)}.btn{background:var(--accent);color:#0b0f19;cursor:pointer;box-shadow:0 4px 14px var(--accent-glow);border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:14px 20px;font-size:.95rem;font-weight:700;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex}.btn:active{transform:scale(.98)}.btn-secondary{color:var(--text-main);box-shadow:none;border:1px solid var(--card-border);background:#ffffff0f}.btn-secondary:hover{background:#ffffff1a}.result-box{border:1px solid var(--card-border);background:#00000040;border-radius:16px;flex-direction:column;gap:10px;padding:16px;display:flex}.result-box .label{color:var(--accent);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:700}.result-text{word-break:break-all;color:var(--text-main);max-height:100px;font-size:.9rem;line-height:1.4;overflow-y:auto}.button-group{gap:8px;display:flex}.button-group>button{flex:1}.qr-output-container{flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.qr-wrapper{background:#fff;border-radius:20px;padding:16px;display:inline-flex;box-shadow:0 10px 25px #00000040}#qr-canvas{display:block;width:200px!important;height:200px!important}.toast{background:var(--accent);color:#020617;opacity:0;z-index:100;border-radius:12px;padding:12px 24px;font-size:.9rem;font-weight:600;transition:all .3s cubic-bezier(.16,1,.3,1);position:fixed;bottom:24px;transform:translateY(100px);box-shadow:0 10px 25px #0006}.toast.show{opacity:1;transform:translateY(0)}.camera-placeholder{text-align:center;z-index:5;background:radial-gradient(circle,#141d2ff2 0%,#0b0f19 100%);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.placeholder-icon{color:var(--accent);filter:drop-shadow(0 0 10px var(--accent-glow));margin-bottom:16px;animation:2s ease-in-out infinite pulse-placeholder}@keyframes pulse-placeholder{0%,to{opacity:.9;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.camera-placeholder h3{color:var(--text-main);margin-bottom:8px;font-size:1.25rem;font-weight:700}.camera-placeholder p{color:var(--text-muted);max-width:280px;margin-bottom:24px;font-size:.85rem;line-height:1.4}.camera-toolbar{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px;width:100%;display:grid}.camera-toolbar .btn{width:100%}#btn-torch.active{background:var(--accent);color:#0b0f19;box-shadow:0 0 16px var(--accent-glow)}.history-panel{border-top:1px solid var(--card-border);flex-direction:column;gap:12px;margin-top:8px;padding-top:16px;display:flex}.history-header{justify-content:space-between;align-items:center;display:flex}.history-header h2{color:var(--text-main);letter-spacing:-.01em;font-size:1rem;font-weight:700}.btn-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 8px;font-size:.8rem;font-weight:600;transition:all .2s}.btn-clear:hover{color:#ef4444;background:#ef444414}.history-list{flex-direction:column;gap:8px;max-height:160px;padding-right:4px;display:flex;overflow-y:auto}.history-list::-webkit-scrollbar{width:5px}.history-list::-webkit-scrollbar-track{background:0 0}.history-list::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:10px}.history-list::-webkit-scrollbar-thumb:hover{background:#fff3}.history-empty{color:var(--text-muted);text-align:center;padding:16px 0;font-size:.85rem}.history-item{cursor:pointer;background:#00000026;border:1px solid #ffffff08;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;transition:all .2s;display:flex}.history-item:hover{background:#ffffff08;border-color:#ffffff14}.history-item-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.history-item-tag{text-transform:uppercase;letter-spacing:.03em;font-size:.65rem;font-weight:700}.history-item-tag.scan{color:var(--accent)}.history-item-tag.generate{color:#6366f1}.history-item-text{color:var(--text-main);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.history-item-time{color:var(--text-muted);font-size:.7rem}.history-item-actions{pointer-events:auto;gap:4px;display:flex}.history-action-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;font-size:.85rem;transition:all .2s;display:flex}.history-action-btn:hover{color:var(--text-main);background:#ffffff14}.history-action-btn.delete:hover{color:#ef4444;background:#ef44441a}.app-footer{color:var(--text-muted);justify-content:center;align-items:center;gap:12px;margin-top:24px;margin-bottom:12px;font-size:.82rem;display:flex}.footer-link,.footer-btn{color:var(--text-muted);font-family:inherit;font-size:inherit;cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;text-decoration:none;transition:color .2s;display:inline-flex}.footer-link:hover,.footer-btn:hover{color:var(--text-main)}.footer-icon{opacity:.7}.footer-divider{opacity:.3}.info-dialog{border:1px solid var(--card-border);-webkit-backdrop-filter:blur(24px);color:var(--text-main);z-index:1000;opacity:0;background:#0b0f19e6;border-radius:24px;width:calc(100% - 32px);max-width:440px;margin:auto;padding:0;transition:opacity .25s,transform .25s;display:none;position:fixed;inset:0;transform:translateY(12px);box-shadow:0 24px 64px #0009}.info-dialog[open]{opacity:1;flex-direction:column;display:flex;transform:translateY(0)}.info-dialog::backdrop{-webkit-backdrop-filter:blur(8px);opacity:0;background:#020617b3;transition:opacity .25s}.info-dialog[open]::backdrop{opacity:1}.dialog-content{flex-direction:column;width:100%;display:flex}.dialog-header{border-bottom:1px solid #ffffff0f;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.dialog-header h2{letter-spacing:-.01em;background:linear-gradient(135deg,#fff 0%,#a5f3fc 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:1.2rem;font-weight:800}.info-dialog .btn-close{color:var(--text-muted);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:1.3rem;font-weight:300;line-height:1;transition:all .2s;display:flex}.info-dialog .btn-close:hover{color:var(--text-main);background:#ffffff1f}.dialog-body{flex-direction:column;gap:20px;max-height:70vh;padding:24px;display:flex;overflow-y:auto}.promises-grid-modal{flex-direction:column;gap:18px;display:flex}.promise-card-modal{align-items:flex-start;gap:14px;display:flex}.promise-card-modal .promise-icon{color:var(--accent);background:#10b9811a;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;padding:8px;display:flex}.promise-card-modal h3{color:var(--text-main);margin-bottom:4px;font-size:.95rem;font-weight:700}.promise-card-modal p{color:var(--text-muted);font-size:.8rem;line-height:1.45}.dialog-footer{text-align:center;color:var(--text-muted);opacity:.6;margin-top:8px;font-size:.75rem}.pwa-prompt-banner{left:50%;bottom:calc(env(safe-area-inset-bottom) + 20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--card-border);width:calc(100% - 32px);max-width:440px;color:var(--text-main);z-index:900;opacity:0;background:#0f172ad9;border-radius:20px;align-items:center;gap:14px;padding:16px;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s;display:flex;position:fixed;transform:translate(-50%)translateY(100px);box-shadow:0 20px 48px #00000080}.pwa-prompt-banner.show{opacity:1;transform:translate(-50%)translateY(0)}.pwa-prompt-icon{background:#020617;border:1px solid #ffffff14;border-radius:10px;flex-shrink:0;width:44px;height:44px;overflow:hidden}.pwa-prompt-icon img{object-fit:cover;width:100%;height:100%;display:block}.pwa-prompt-text{flex-grow:1}.pwa-prompt-text h3{margin-bottom:2px;font-size:.9rem;font-weight:700}.pwa-prompt-text p{color:var(--text-muted);font-size:.75rem}.pwa-prompt-actions{gap:8px;display:flex}.pwa-prompt-actions button{padding:6px 12px;font-size:.78rem;font-weight:600}.btn-sm{cursor:pointer;border-radius:8px}.pwa-prompt-sheet{-webkit-backdrop-filter:blur(24px);border:1px solid var(--card-border);width:100%;color:var(--text-main);z-index:950;padding:20px 24px calc(env(safe-area-inset-bottom) + 20px);opacity:0;background:#0f172ae6;border-bottom:none;border-radius:24px 24px 0 0;transition:transform .4s cubic-bezier(.16,1,.3,1),opacity .4s;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%);box-shadow:0 -10px 40px #0006}.pwa-prompt-sheet.show{opacity:1;transform:translateY(0)}.pwa-sheet-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.pwa-sheet-logo{align-items:center;gap:12px;display:flex}.pwa-sheet-logo img{background:#020617;border:1px solid #ffffff14;border-radius:9px;width:40px;height:40px}.pwa-sheet-logo h3{font-size:.95rem;font-weight:700}.pwa-sheet-logo p{color:var(--text-muted);font-size:.75rem}.pwa-sheet-header .btn-close{color:var(--text-muted);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff14;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.pwa-sheet-body{color:var(--text-muted);font-size:.85rem;line-height:1.45}.pwa-sheet-body>p{margin-bottom:16px}.ios-install-steps{flex-direction:column;gap:10px;list-style:none;display:flex}.ios-install-steps li{background:#ffffff05;border:1px solid #ffffff0a;border-radius:10px;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.ios-icon-wrapper{background:#ffffff0f;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;display:flex}
