:root{--bg: #0b132b;--fg: #e0e6f6;--muted: #a8b0c7;--card: #1c2541;--accent: #5bc0be;--danger: #e74c3c}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial;background:var(--bg);color:var(--fg)}.app{max-width:880px;margin:0 auto;padding:16px}header{display:flex;align-items:center;justify-content:space-between}h1{font-size:20px;margin:12px 0 16px}h2{font-size:18px;margin:24px 0 8px}.banner{background:#122046;border:1px solid #2a3760;padding:12px 14px;border-radius:10px;margin:8px 0;display:flex;align-items:center;gap:12px}.banner button{padding:10px 16px;font-size:14px;min-height:40px;white-space:nowrap}.controls{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:1rem}.hce-controls{background:linear-gradient(135deg,#5ac8fa1a,#5ac8fa0d);padding:1rem;border-radius:12px;border:1px solid rgba(90,200,250,.3);margin-top:.5rem}.hce-controls:before{content:"📱 HCE Эмуляция (Android TWA)";display:block;font-size:.85rem;font-weight:600;color:var(--accent);margin-bottom:.75rem;text-transform:uppercase;letter-spacing:.5px}.search-bar{position:relative;margin-bottom:1.5rem}.search-bar input[type=search]{width:100%;padding:.75rem 2.5rem .75rem 1rem;font-size:1rem;border:2px solid rgba(90,200,250,.3);border-radius:12px;background:#0000004d;color:var(--text);transition:all .3s}.search-bar input[type=search]:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #5ac8fa1a}.search-bar input[type=search]::placeholder{color:var(--muted)}.clear-search{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);background:#ffffff1a;border:none;width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;color:var(--muted);font-size:1.2rem;padding:0}.clear-search:hover{background:#fff3;color:var(--text)}button{background:#243055;color:var(--fg);border:1px solid #33406a;border-radius:12px;padding:12px 20px;cursor:pointer;font-size:15px;font-weight:500;transition:all .2s ease;min-height:44px}button:hover{background:#2b3965;transform:translateY(-1px);box-shadow:0 4px 8px #0003}button:active{transform:translateY(0);box-shadow:0 2px 4px #0003}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button.primary{background:var(--accent);color:#072a2a;border-color:var(--accent);font-weight:600;font-size:16px}button.primary:hover{filter:brightness(1.1);transform:translateY(-1px);box-shadow:0 4px 12px #5bc0be66}button.danger{background:var(--danger);border-color:var(--danger);color:#fff;font-weight:600}.list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.list>li{scroll-margin:20px}.card{background:var(--card);border:1px solid #2a3760;border-radius:14px;padding:12px;position:relative}.card.active{outline:2px solid var(--accent)}.card-header{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:flex-start}.key-name{font-size:1.2rem}.delete-btn{padding:8px 12px;font-size:1.1rem;min-height:36px;width:auto;border-radius:8px;align-self:flex-start}.activate-btn{padding:8px 16px;font-size:14px;min-height:36px;width:auto;border-radius:8px;align-self:flex-start;white-space:nowrap;transition:all .3s}.activate-btn.active{background:linear-gradient(135deg,var(--accent),#4a9f9d);color:#fff;box-shadow:0 2px 8px #5ac8fa4d;font-weight:600}.key-meta{color:var(--muted);font-size:12px;margin-top:4px}.pre{background:#0f1a3a;padding:8px;border-radius:8px;overflow:auto}.badge{position:absolute;top:-10px;right:-10px;background:var(--accent);color:#072a2a;font-weight:700;padding:4px 8px;border-radius:999px;border:2px solid #0b132b}.busy{margin:10px 0;padding:8px 12px;background:#122046;border-radius:10px;border:1px solid #2a3760}.muted{color:var(--muted)}footer{margin:32px 0 8px;color:var(--muted);text-align:center}.key-info{flex:1}.key-meta-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.5rem;margin-top:.75rem}.meta-item{display:flex;flex-direction:column;gap:.25rem}.meta-label{font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.meta-value{font-size:.85rem;color:var(--text);font-family:SF Mono,Monaco,Courier New,monospace;word-break:break-all}button.meta-value.copyable{background:#5ac8fa14;border:1px solid rgba(90,200,250,.2);border-radius:6px;padding:.35rem .6rem;cursor:pointer;transition:all .2s;text-align:left;position:relative;font-family:SF Mono,Monaco,Courier New,monospace;font-size:.85rem;color:var(--text)}button.meta-value.copyable:hover{background:#5ac8fa26;border-color:var(--accent)}.copied-badge{margin-left:.5rem;color:#4caf50;font-weight:700;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}.records-details{margin-top:1rem;border-top:1px solid rgba(255,255,255,.08);padding-top:1rem}.records-details summary{cursor:pointer;font-weight:600;padding:.6rem;border-radius:8px;transition:all .2s;-webkit-user-select:none;user-select:none;background:#5ac8fa0d}.records-details summary:hover{background:#5ac8fa1f}.records-details[open] summary{margin-bottom:1rem;background:#5ac8fa26}.records-list{display:flex;flex-direction:column;gap:.75rem}.record-item{background:#00000040;border-radius:8px;padding:1rem;border-left:3px solid var(--accent);transition:all .2s}.record-item:hover{background:#00000059}.record-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.6rem;flex-wrap:wrap}.record-icon{font-size:1.4rem;line-height:1}.record-type{font-weight:600;color:var(--accent);font-size:.95rem}.record-item[data-type=text] .record-type{color:#4fc3f7}.record-item[data-type=url] .record-type,.record-item[data-type=absolute-url] .record-type{color:#81c784}.record-item[data-type=smart-poster] .record-type{color:#ff9800}.record-item[data-type=mime] .record-type{color:#ba68c8}.record-item[data-type=empty] .record-type{color:#757575}.record-item[data-type=unknown] .record-type{color:#e57373}.record-media{font-size:.75rem;color:var(--muted);background:#ffffff14;padding:.2rem .6rem;border-radius:4px;font-family:monospace}.record-description{color:var(--text);line-height:1.5;word-break:break-word}.record-field{font-size:.85rem;color:var(--muted);margin-top:.5rem}.record-field strong{color:var(--accent)}.legal{margin-top:3rem;padding:1.5rem;background:#0003;border-radius:12px;border:1px solid rgba(90,200,250,.2)}.legal h3{color:var(--primary);margin-bottom:1rem;font-size:1.3rem}.legal h4{margin-top:1rem;margin-bottom:.5rem;font-size:1.1rem}.legal ul{list-style:none;padding-left:0;margin:.75rem 0}.legal ul li{padding:.5rem 0;line-height:1.6;color:var(--text)}.legal p{line-height:1.6;color:var(--text);margin:.5rem 0}.legal em{color:var(--muted);font-style:italic}.legal a{color:var(--accent);text-decoration:none;transition:opacity .2s}.legal a:hover{opacity:.8;text-decoration:underline}.record-hex{margin-top:.75rem}.record-hex summary{cursor:pointer;font-size:.85rem;color:var(--accent);padding:.4rem .6rem;background:#5ac8fa0d;border-radius:6px;transition:all .2s}.record-hex summary:hover{background:#5ac8fa1f}.hex-dump{background:#00000080;padding:1rem;border-radius:6px;overflow-x:auto;font-size:.8rem;line-height:1.8;color:#5ac8fa;font-family:SF Mono,Monaco,Courier New,monospace;margin:.5rem 0;border:1px solid rgba(90,200,250,.2)}.copy-btn{font-size:.85rem;padding:.6rem 1rem;margin-top:.5rem;min-height:38px}.no-records{margin-top:1rem;padding:1rem;background:#ffc10714;border-left:3px solid #ffc107;border-radius:8px}.no-records p{margin:0 0 .5rem;color:#ffc107;font-weight:600}.no-records small{color:var(--muted)}.legal{margin-top:2rem;padding:1.5rem;background:#ff980014;border-left:4px solid #ff9800;border-radius:8px}.legal h3{margin-top:0;color:#ff9800;font-size:1.1rem}.legal ul{margin:.5rem 0 0 1.2rem;padding:0}.legal li{margin-bottom:.5rem;color:var(--text);line-height:1.6}.uid-only-warning{margin-top:1.5rem;padding:0;background:linear-gradient(135deg,#ff98001f,#ffc10714);border-left:4px solid #ff9800;border-radius:10px;animation:slideIn .4s ease-out}.uid-only-warning summary{cursor:pointer;-webkit-user-select:none;user-select:none;list-style:none;padding:1rem 1.25rem}.uid-only-warning summary::-webkit-details-marker{display:none}.uid-only-warning summary:before{content:"▶";display:inline-block;margin-right:.5rem;transition:transform .2s;font-size:.8rem;color:#ff9800}.uid-only-warning[open] summary:before{transform:rotate(90deg)}.warning-content{padding:0 1.25rem 1.25rem}@keyframes slideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.warning-header{display:flex;align-items:center;gap:.5rem;font-weight:600;color:#ff9800;font-size:1rem}.warning-icon{font-size:1.5rem;line-height:1}.warning-description{margin:0 0 1rem;color:var(--fg);line-height:1.6;font-size:.95rem}.warning-description strong{color:#ff5722;font-weight:700}.solutions{background:#00000040;padding:1rem;border-radius:8px;margin-bottom:1rem}.solutions strong{display:block;margin-bottom:.5rem;color:var(--accent);font-size:1rem}.solutions ul{margin:0;padding-left:1.2rem;list-style:none}.solutions li{margin-bottom:.6rem;line-height:1.5;color:var(--fg);position:relative;padding-left:.5rem}.solutions li:before{content:"→";position:absolute;left:-1rem;color:var(--accent);font-weight:700}.technical-details{margin-top:1rem}.technical-details summary{cursor:pointer;padding:.6rem .8rem;background:#00000040;border-radius:6px;font-weight:600;color:var(--accent);transition:all .2s;-webkit-user-select:none;user-select:none}.technical-details summary:hover{background:#00000059}.technical-details[open] summary{margin-bottom:.75rem}.tech-info{padding:.75rem;background:#0003;border-radius:6px}.tech-info p{margin:0 0 .5rem;color:var(--fg);font-weight:600}.tech-info ul{margin:0;padding-left:1.5rem}.tech-info li{margin-bottom:.5rem;color:var(--muted);line-height:1.5;font-size:.9rem}@media (max-width: 640px){.controls{gap:10px}.controls button{flex:1;min-width:calc(50% - 5px);padding:14px 16px;font-size:15px;min-height:48px}.controls button.primary{flex:1 1 100%;min-width:100%;font-size:16px;min-height:52px}.banner{flex-direction:column;align-items:stretch;gap:10px}.banner button{width:100%;min-height:44px}.card-header{grid-template-columns:auto 1fr;gap:.5rem}.delete-btn{grid-column:1;grid-row:1;padding:8px;font-size:1rem;min-height:40px}.key-info{grid-column:1 / -1;grid-row:2}.activate-btn{grid-column:2;grid-row:1;padding:8px 12px;font-size:13px;min-height:40px;justify-self:end}.card{padding:16px}h1{font-size:24px}h2{font-size:20px}}.download-banner{background:linear-gradient(135deg,#1a2a5e,#0f1a3a);border:2px solid rgba(91,192,190,.4);border-radius:16px;padding:0;margin:16px 0;overflow:hidden;box-shadow:0 8px 24px #0000004d;animation:slideDown .4s ease-out}@keyframes slideDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.download-banner-content{display:flex;align-items:center;gap:16px;padding:20px}.download-banner-icon{font-size:48px;flex-shrink:0}.download-banner-text{flex:1}.download-banner-text h4{margin:0 0 8px;font-size:18px;color:var(--accent);font-weight:600}.download-banner-text p{margin:0 0 12px;color:var(--muted);line-height:1.5;font-size:14px}.download-banner-features{display:flex;gap:8px;flex-wrap:wrap}.feature-badge{display:inline-block;padding:4px 10px;background:#5bc0be26;border:1px solid rgba(91,192,190,.3);border-radius:12px;font-size:12px;color:var(--accent);font-weight:500}.download-banner-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.btn-download{display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 24px;background:linear-gradient(135deg,var(--accent),#4aa6a4);color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .3s;box-shadow:0 4px 12px #5bc0be4d;white-space:nowrap}.btn-download:hover{transform:translateY(-2px);box-shadow:0 6px 16px #5bc0be66}.btn-download:active{transform:translateY(0)}.download-size{font-size:11px;opacity:.8;font-weight:400}.btn-dismiss{background:#ffffff1a;border:none;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);font-size:18px;transition:all .2s}.btn-dismiss:hover{background:#fff3;color:var(--fg);transform:rotate(90deg)}.download-banner-info{padding:12px 20px;background:#0003;border-top:1px solid rgba(255,255,255,.1)}.download-banner-info small{font-size:12px;color:var(--muted);line-height:1.6}.download-banner-info a{color:var(--accent);text-decoration:none;font-weight:500}.download-banner-info a:hover{text-decoration:underline}@media (max-width: 600px){.download-banner-content{flex-direction:column;text-align:center;padding:16px}.download-banner-icon{font-size:40px}.download-banner-actions{width:100%;align-items:center}.btn-download{width:100%}.download-banner-features{justify-content:center}}.modal-overlay{position:fixed;inset:0;background:#000000d9;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:9999;padding:1rem;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:linear-gradient(135deg,#1a2642,#0f1a3a);border-radius:16px;max-width:500px;width:100%;box-shadow:0 20px 60px #00000080;border:1px solid rgba(90,200,250,.3);animation:slideUp .3s ease-out;overflow:hidden}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem;border-bottom:1px solid rgba(255,255,255,.1)}.modal-header h3{margin:0;font-size:1.3rem;color:var(--primary);display:flex;align-items:center;gap:.5rem}.modal-close{background:#ffffff1a;border:none;width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text);font-size:1.2rem;transition:all .2s;padding:0}.modal-close:hover{background:#fff3;transform:rotate(90deg)}.modal-body{padding:1.5rem}.modal-description{margin:0 0 1.5rem;color:var(--muted);line-height:1.5}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:var(--accent);font-size:.9rem}.modal-input{padding:.75rem 1rem;font-size:1rem;border:2px solid rgba(90,200,250,.3);border-radius:8px;background:#0000004d;color:var(--text);transition:all .3s;font-family:inherit}.modal-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #5ac8fa1a;background:#0006}.modal-footer{display:flex;gap:.75rem;padding:1.5rem;border-top:1px solid rgba(255,255,255,.1);background:#0003}.btn-secondary,.btn-primary{flex:1;padding:.75rem 1.5rem;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;border:none;font-family:inherit}.btn-secondary{background:#ffffff1a;color:var(--text)}.btn-secondary:hover{background:#ffffff26}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--accent));color:#fff;box-shadow:0 4px 12px #5ac8fa4d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px #5ac8fa66}.btn-primary:active{transform:translateY(0)}@media (max-width: 600px){.modal-content{max-width:100%;margin:0 1rem}.modal-header h3{font-size:1.1rem}.modal-footer{flex-direction:column}}
