.encryption-backdrop{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;background:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100}.encryption-modal{width:100%;max-width:360px;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f}.encryption-modal h2{margin:0 0 .5rem;font-size:1.25rem}.encryption-modal p{margin:0 0 1.5rem;color:#666;font-size:.875rem;line-height:1.4}.encryption-modal form{display:flex;flex-direction:column;gap:1rem}.encryption-modal input{padding:.625rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:1rem;outline:none}.encryption-modal input:focus{border-color:#333}.encryption-modal button{padding:.625rem 1rem;border:none;border-radius:6px;background:#111;color:#fff;font-size:1rem;cursor:pointer}.encryption-modal button:disabled{opacity:.6;cursor:not-allowed}.encryption-error{color:#d32f2f;font-size:.875rem;margin:0}.encryption-loading{display:flex;align-items:center;justify-content:center;gap:.5rem}.encryption-spinner{width:1rem;height:1rem;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:encryption-spin .6s linear infinite}@keyframes encryption-spin{to{transform:rotate(360deg)}}.encryption-hint{color:#999;font-size:.8rem;text-align:center;margin:0}.biometric-retry-btn{width:100%;padding:.625rem 1rem;border:2px solid #111;border-radius:6px;background:#fff;color:#111;font-size:1rem;cursor:pointer;margin-bottom:1rem}.biometric-retry-btn:disabled{opacity:.6;cursor:not-allowed}.biometric-enable-btn{width:100%;padding:.625rem 1rem;border:none;border-radius:6px;background:#111;color:#fff;font-size:1rem;cursor:pointer;margin-bottom:.75rem}.biometric-enable-btn:disabled{opacity:.6;cursor:not-allowed}.biometric-skip-btn{width:100%;padding:.625rem 1rem;border:none;border-radius:6px;background:transparent;color:#666;font-size:.875rem;cursor:pointer}.biometric-skip-btn:disabled{opacity:.6;cursor:not-allowed}.import-modal-backdrop{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;background:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100}.import-modal{width:100%;max-width:360px;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f}.import-modal h2{margin:0 0 .5rem;font-size:1.25rem}.import-modal p{margin:0 0 1.5rem;color:#666;font-size:.875rem;line-height:1.4}.import-modal-select-btn{width:100%;padding:.625rem 1rem;border:2px dashed #ccc;border-radius:6px;background:#fafafa;color:#333;font-size:1rem;cursor:pointer}.import-modal-select-btn:hover:not(:disabled){border-color:#999;background:#f5f5f5}.import-modal-select-btn.is-picking{border-style:solid;border-color:#bbb;color:#888}.import-modal-preview{margin:0 0 1.5rem;color:#333;font-size:.9rem;line-height:1.5}.import-modal-actions{display:flex;gap:.5rem}.import-modal-actions button{flex:1;padding:.625rem 1rem;border:none;border-radius:6px;font-size:1rem;cursor:pointer}.import-modal-actions button:disabled{opacity:.6;cursor:not-allowed}.import-modal-import-btn{background:#111;color:#fff}.import-modal-cancel-btn{background:#eee;color:#333}.import-modal-progress{margin:0 0 1rem;color:#333;font-size:.9rem}.import-modal-progress-bar{width:100%;height:6px;background:#eee;border-radius:3px;overflow:hidden;margin-top:.75rem}.import-modal-progress-fill{height:100%;background:#111;border-radius:3px;transition:width .2s ease}.import-modal-error{color:#d32f2f;font-size:.875rem;margin:0 0 1rem}.import-modal-loading{display:flex;align-items:center;justify-content:center;gap:.5rem}.import-modal-spinner{width:1rem;height:1rem;border:2px solid rgba(0,0,0,.1);border-top-color:#666;border-radius:50%;animation:import-spin .6s linear infinite}@keyframes import-spin{to{transform:rotate(360deg)}}.packlist-container{min-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));display:flex;justify-content:center;padding:2rem 1rem}.packlist-content{width:100%;max-width:600px}.packlist-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.packlist-header h1{font-size:1.5rem;margin:0}.packlist-account{background:none;border:none;color:#666;cursor:pointer;padding:.25rem;display:flex;align-items:center}.packlist-account:hover{color:#333}.packlist-create{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.packlist-create input{flex:1 1 100%;padding:.625rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:1rem;outline:none}.packlist-create input:focus{border-color:#333}.packlist-create button{padding:.625rem 1rem;border:none;border-radius:6px;background:#111;color:#fff;font-size:1rem;cursor:pointer;white-space:nowrap}.packlist-create button:disabled{opacity:.6;cursor:not-allowed}.packlist-error{color:#d32f2f;font-size:.875rem;margin:0 0 1rem}.packlist-empty{color:#666;font-size:.9rem;text-align:center;margin-top:2rem}.packlist-list{list-style:none;padding:0;margin:0}.packlist-item{display:flex;align-items:center;justify-content:space-between;padding:.75rem 0;border-bottom:1px solid #eee}.packlist-item:first-child{border-top:1px solid #eee}.packlist-item-name{background:none;border:none;font-size:1rem;cursor:pointer;padding:0;text-align:left;flex:1}.packlist-item-name:hover{color:#555}.packlist-import-btn{padding:.625rem 1rem;border:1px solid #ccc;border-radius:6px;background:#fff;color:#333;font-size:1rem;cursor:pointer;white-space:nowrap}.packlist-import-btn:hover{border-color:#999;background:#f5f5f5}.packlist-import-btn:disabled{opacity:.6;cursor:not-allowed}.export-modal-backdrop{position:fixed;inset:0;display:flex;justify-content:center;align-items:center;background:#fffc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:100}.export-modal{width:100%;max-width:400px;padding:2rem;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000001f}.export-modal h2{margin:0 0 1rem;font-size:1.25rem}.export-modal-tree{background:#f8f8f8;border-radius:6px;padding:.75rem 1rem;font-family:monospace;font-size:.8rem;line-height:1.6;color:#444;margin-bottom:1rem;white-space:pre;overflow-x:auto}.export-modal-warning{color:#666;font-size:.8rem;line-height:1.5;margin:0 0 1.5rem}.export-modal-warning strong{color:#444}.export-modal-buttons{display:flex;gap:.75rem}.export-modal-export-btn{flex:1;padding:.625rem 1rem;border:none;border-radius:6px;background:#111;color:#fff;font-size:1rem;cursor:pointer}.export-modal-export-btn:disabled{opacity:.6;cursor:not-allowed}.export-modal-cancel-btn{flex:1;padding:.625rem 1rem;border:1px solid #ccc;border-radius:6px;background:#fff;color:#333;font-size:1rem;cursor:pointer}.export-modal-cancel-btn:hover{border-color:#999}.export-modal-progress{color:#666;font-size:.9rem;text-align:center;margin:1rem 0 0}.export-modal-spinner{display:inline-block;width:1rem;height:1rem;border:2px solid rgba(0,0,0,.15);border-top-color:#333;border-radius:50%;animation:export-modal-spin .6s linear infinite;vertical-align:middle;margin-right:.5rem}@keyframes export-modal-spin{to{transform:rotate(360deg)}}.export-modal-error{color:#d32f2f;font-size:.875rem;margin:1rem 0 0;text-align:center}.packdetail-container{min-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));display:flex;justify-content:center;padding:2rem 1rem}.packdetail-content{width:100%;max-width:600px}.packdetail-header{margin-bottom:1.5rem}.packdetail-back{background:none;border:none;color:#666;cursor:pointer;font-size:.875rem;padding:0;margin-bottom:.5rem;display:block}.packdetail-back:hover{color:#333}.packdetail-header h1{font-size:1.5rem;margin:0}.packdetail-rename-form input{width:100%;padding:.375rem .5rem;border:1px solid #333;border-radius:4px;font-size:1.5rem;font-weight:700;outline:none}.packdetail-actions{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.packdetail-practice-btn{padding:.6rem 1.5rem;background:#3498db;color:#fff;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer}.packdetail-practice-btn:hover{background:#2980b9}.packdetail-practice-btn:disabled{background:#bdc3c7;cursor:not-allowed}.packdetail-study-all-link{background:none;border:none;color:#666;font-size:.9rem;cursor:pointer;text-decoration:underline;padding:0}.packdetail-study-all-link:hover{color:#333}.packdetail-study-all-link:disabled{color:#bdc3c7;cursor:not-allowed;text-decoration:none}.packdetail-menu-wrapper{position:relative}.packdetail-menu-btn{background:none;border:none;font-size:1.25rem;color:#666;cursor:pointer;padding:.25rem .5rem;line-height:1;letter-spacing:.1em;border-radius:4px}.packdetail-menu-btn:hover{background:#f0f0f0;color:#333}.packdetail-menu{position:absolute;right:0;top:100%;margin-top:.25rem;background:#fff;border:1px solid #ddd;border-radius:8px;box-shadow:0 4px 12px #0000001a;min-width:140px;z-index:10;overflow:hidden}.packdetail-menu-item{display:block;width:100%;padding:.625rem 1rem;background:none;border:none;text-align:left;font-size:.9rem;cursor:pointer;color:#333}.packdetail-menu-item:hover{background:#f5f5f5}.packdetail-menu-item:disabled{color:#bdc3c7;cursor:not-allowed}.packdetail-menu-item-danger{color:#d32f2f}.packdetail-menu-item-danger:hover{background:#fef2f2}.packdetail-add-btn{display:block;width:100%;padding:.75rem;border:2px dashed #ccc;border-radius:8px;background:none;color:#666;font-size:1rem;cursor:pointer;margin-bottom:1.5rem}.packdetail-add-btn:hover{border-color:#999;color:#333}.packdetail-error{color:#d32f2f;font-size:.875rem;margin:0 0 1rem}.packdetail-empty{color:#666;font-size:.9rem;text-align:center;margin-top:2rem}.packdetail-list{list-style:none;padding:0;margin:0}.packdetail-card{padding:1rem 0;border-bottom:1px solid #eee}.packdetail-card:first-child{border-top:1px solid #eee}.packdetail-card-content{display:flex;gap:2rem;margin-bottom:.5rem}.packdetail-card-side{flex:1;display:flex;flex-direction:column;gap:.25rem}.packdetail-card-label{font-size:.75rem;color:#999;text-transform:uppercase;letter-spacing:.05em}.packdetail-card-actions{display:flex;gap:.75rem}.packdetail-action{background:none;border:none;color:#888;cursor:pointer;font-size:.8rem;padding:0}.packdetail-action:hover{color:#333}.packdetail-action-delete:hover{color:#d32f2f}.packdetail-card-image{max-width:100%;max-height:200px;border-radius:4px;margin-top:.25rem}.cardform{display:flex;flex-direction:column;gap:1.5rem}.cardform-side{border:1px solid #e0e0e0;border-radius:8px;padding:1rem;display:flex;flex-direction:column;gap:.75rem}.cardform-side-label{font-size:.75rem;color:#999;text-transform:uppercase;letter-spacing:.05em;font-weight:600}.cardform-textarea{padding:.625rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:1rem;font-family:inherit;outline:none;resize:vertical;min-height:60px}.cardform-textarea:focus{border-color:#333}.cardform-dropzone{border:2px dashed #ccc;border-radius:8px;padding:1rem;display:flex;align-items:center;justify-content:center;gap:.5rem;color:#999;font-size:.875rem;transition:border-color .15s,background-color .15s}.cardform-dropzone-active{border-color:#333;background-color:#f5f5f5}.cardform-dropzone-text{color:#999}.cardform-browse-btn{background:none;border:1px solid #ccc;border-radius:4px;padding:.25rem .625rem;font-size:.875rem;color:#555;cursor:pointer}.cardform-browse-btn:hover{border-color:#999;color:#333}.cardform-file-input{display:none}.cardform-preview{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.cardform-preview-img{max-width:100%;max-height:200px;border-radius:4px}.cardform-remove-img{background:none;border:none;color:#d32f2f;cursor:pointer;font-size:.8rem;padding:0}.cardform-remove-img:hover{text-decoration:underline}.cardform-actions{display:flex;gap:.75rem}.cardform-btn-primary{padding:.625rem 1.25rem;border:none;border-radius:6px;background:#111;color:#fff;font-size:1rem;cursor:pointer}.cardform-btn-primary:disabled{opacity:.6;cursor:not-allowed}.cardform-btn-secondary{padding:.625rem 1.25rem;border:1px solid #ccc;border-radius:6px;background:#fff;color:#333;font-size:1rem;cursor:pointer}.cardform-btn-secondary:disabled{opacity:.6;cursor:not-allowed}.cardform-btn-secondary:hover:not(:disabled){border-color:#999}.login-container{display:flex;justify-content:center;align-items:center;min-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))}.login-card{width:100%;max-width:360px;padding:2rem}.login-card h1{margin:0 0 .5rem;font-size:1.5rem}.login-card p{margin:0 0 1.5rem;color:#666;font-size:.9rem}.login-card form{display:flex;flex-direction:column;gap:1rem}.login-card input{padding:.625rem .75rem;border:1px solid #ccc;border-radius:6px;font-size:1rem;outline:none}.login-card input:focus{border-color:#333}.login-card button{padding:.625rem 1rem;border:none;border-radius:6px;background:#111;color:#fff;font-size:1rem;cursor:pointer}.login-card button:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#d32f2f;font-size:.875rem;margin:0}.login-back{background:none;border:none;color:#666;cursor:pointer;font-size:.875rem;padding:0;text-decoration:underline}.review-container{display:flex;flex-direction:column;align-items:center;min-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:1rem;max-width:600px;margin:0 auto}.review-header{display:flex;justify-content:space-between;align-items:center;width:100%;margin-bottom:1.5rem}.review-header-left{display:flex;align-items:center;gap:.5rem}.review-back-btn{background:none;border:none;font-size:1.2rem;cursor:pointer;padding:.25rem .5rem;color:#666}.review-back-btn:hover{color:#333}.review-progress{color:#666;font-size:.9rem}.review-card-container{perspective:1000px;width:100%;max-width:500px;min-height:300px;margin-bottom:1.5rem;cursor:pointer}.review-card-inner{position:relative;width:100%;min-height:300px;transition:transform .3s ease;transform-style:preserve-3d}.review-card-inner.flipped{transform:rotateY(180deg)}.review-card-face{position:absolute;top:0;left:0;width:100%;min-height:300px;backface-visibility:hidden;border:2px solid #e0e0e0;border-radius:12px;padding:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#fff;box-sizing:border-box}.review-card-back{transform:rotateY(180deg)}.review-card-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#999;margin-bottom:.75rem}.review-card-text{font-size:1.25rem;text-align:center;word-break:break-word}.review-card-image{max-width:100%;max-height:200px;border-radius:8px;margin-top:.5rem}.review-hint{color:#999;font-size:.9rem;margin-bottom:1rem}.review-rating-buttons{display:flex;gap:.75rem;width:100%;max-width:500px}.review-rating-btn{flex:1;padding:.75rem .5rem;border:2px solid;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;background:#fff;transition:background-color .15s,color .15s}.review-rating-btn.missed{border-color:#e74c3c;color:#e74c3c}.review-rating-btn.missed:hover,.review-rating-btn.missed.selected{background:#e74c3c;color:#fff}.review-rating-btn.hard{border-color:#e67e22;color:#e67e22}.review-rating-btn.hard:hover,.review-rating-btn.hard.selected{background:#e67e22;color:#fff}.review-rating-btn.good{border-color:#27ae60;color:#27ae60}.review-rating-btn.good:hover,.review-rating-btn.good.selected{background:#27ae60;color:#fff}.review-rating-btn.easy{border-color:#3498db;color:#3498db}.review-rating-btn.easy:hover,.review-rating-btn.easy.selected{background:#3498db;color:#fff}.review-rating-key{display:block;font-size:.7rem;font-weight:400;opacity:.7;margin-top:.25rem}.review-summary{text-align:center;padding:2rem}.review-summary h2{margin-bottom:1rem}.review-summary-stats{display:flex;gap:2rem;justify-content:center;margin-bottom:2rem}.review-summary-stat{text-align:center}.review-summary-stat-value{font-size:2rem;font-weight:700}.review-summary-stat-label{font-size:.85rem;color:#666}.review-done-btn{padding:.75rem 2rem;background:#3498db;color:#fff;border:none;border-radius:8px;font-size:1rem;cursor:pointer}.review-done-btn:hover{background:#2980b9}.review-empty{text-align:center;padding:3rem 1rem;color:#666}.review-empty h2{margin-bottom:.5rem;color:#333}.review-undo-btn{background:none;border:none;color:#666;cursor:pointer;font-size:.85rem;padding:.25rem .5rem}.review-undo-btn:hover{color:#333}.review-syncing{color:#666;font-size:.9rem}.account-container{min-height:calc(100vh - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));display:flex;justify-content:center;padding:2rem 1rem}.account-content{width:100%;max-width:600px}.account-header{margin-bottom:2rem}.account-header h1{font-size:1.5rem;margin:.75rem 0 0}.account-back{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;color:#666;cursor:pointer;font-size:.875rem;padding:0}.account-back:hover{color:#333}.account-section{margin-bottom:2rem}.account-label{display:block;font-size:.75rem;color:#888;text-transform:uppercase;letter-spacing:.05em;margin-bottom:.25rem}.account-value{margin:0;font-size:1rem;color:#333}.account-logout{padding:.625rem 1.25rem;border:1px solid #d32f2f;border-radius:6px;background:#fff;color:#d32f2f;font-size:1rem;cursor:pointer}.account-logout:hover{background:#fef2f2}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}body:before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:#fff;z-index:1000}
