:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5;color:#1a1a1a;background:#f4f6f8}*{box-sizing:border-box}body{margin:0}a{color:#2563eb}.container{max-width:720px;margin:0 auto;padding:1.5rem}.card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #00000014;margin-bottom:1rem}h1{font-size:1.5rem;margin:0 0 1rem}label{display:block;font-size:.875rem;font-weight:600;margin-bottom:.35rem}input{width:100%;padding:.6rem .75rem;border:1px solid #d1d5db;border-radius:8px;margin-bottom:.75rem}button,.btn{display:inline-flex;align-items:center;justify-content:center;padding:.6rem 1rem;border:none;border-radius:8px;background:#2563eb;color:#fff;font:inherit;font-size:.9375rem;font-weight:600;line-height:1.25;cursor:pointer;text-decoration:none;box-sizing:border-box;min-height:2.5rem;vertical-align:middle}a.btn,a.btn:hover,a.btn:visited,a.btn:active{color:#fff}button:disabled,.btn.disabled{opacity:.5;cursor:not-allowed}button.secondary,.btn.secondary{background:#6b7280}button.danger,.btn.danger{background:#dc2626}.nav{display:flex;gap:.75rem;align-items:center;margin-bottom:1rem;flex-wrap:wrap}.nav .btn,.nav button{flex:0 0 auto}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.badge.online{background:#d1fae5;color:#065f46}.badge.offline{background:#fee2e2;color:#991b1b}.preview{width:100%;max-height:70vh;object-fit:contain;border-radius:8px;background:#111;transition:transform .2s ease}.rotation-options{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.rotation-option{display:flex;align-items:center;gap:.35rem;flex:1;min-width:4rem;padding:.45rem .5rem;border:1px solid #d1d5db;border-radius:8px;background:#fff;cursor:pointer;font-size:.875rem;-webkit-user-select:none;user-select:none}.rotation-option.selected{border-color:#2563eb;background:#eff6ff}.rotation-option input{margin:0;accent-color:#2563eb}.rotation-option:has(input:disabled){opacity:.55;cursor:not-allowed}.preview-stage-outer{width:100%}.preview-stage{display:flex;align-items:center;justify-content:center;margin:0 auto}.preview-wrap{position:relative;margin-top:1rem;margin-bottom:.25rem}.preview-wrap.busy .preview{opacity:.55}.preview-busy{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;font-weight:600;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8);background:#00000040;border-radius:8px}.error{color:#b91c1c;font-size:.875rem}.muted{color:#6b7280;font-size:.875rem}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.row:not(.capture-buttons)>button,.row:not(.capture-buttons)>.btn{flex:0 0 auto}.wifi-list{list-style:none;padding:0;margin:0 0 1rem}.wifi-list li{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px solid #e5e7eb}.wifi-list li:last-child{border-bottom:none}.nav-spread{justify-content:space-between}.capture-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-bottom:.75rem}.capture-header h1{margin:0}.capture-buttons{margin-top:1rem}.capture-buttons button{flex:1;min-width:5rem}select{width:100%;padding:.6rem .75rem;border:1px solid #d1d5db;border-radius:8px;margin-bottom:.75rem;background:#fff}.settings-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:100;padding:1rem}.settings-panel{width:100%;max-width:720px;max-height:85vh;overflow:auto;margin:0}.settings-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1rem}.settings-tabs{display:flex;gap:.5rem;margin-bottom:1rem}.settings-tabs button{flex:1}.settings-subhead{font-size:1rem;margin:1.25rem 0 .5rem}.settings-divider{border:none;border-top:1px solid #e5e7eb;margin:1.25rem 0}@media (min-width: 640px){.settings-backdrop{align-items:center}}.login-legal{margin-top:1.25rem;margin-bottom:0;line-height:1.45}.legal-doc h2{font-size:1.05rem;margin:1.5rem 0 .5rem}.legal-doc p,.legal-doc li{font-size:.9375rem}.legal-doc ul{padding-left:1.25rem}.legal-notice{margin-top:1.5rem;padding:.75rem 1rem;background:#f3f4f6;border-radius:8px;font-size:.875rem;line-height:1.5}.password-field{display:flex;gap:.5rem;align-items:stretch;margin-bottom:.75rem}.password-field input{flex:1;margin-bottom:0}.password-toggle{flex-shrink:0;padding-left:.75rem;padding-right:.75rem;font-size:.8125rem}
