.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}.packlist-container{min-height:100vh;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-header-right{display:flex;align-items:center;gap:1rem}.packlist-email{color:#666;font-size:.875rem}.packlist-logout{background:none;border:none;color:#666;cursor:pointer;font-size:.875rem;padding:0;text-decoration:underline}.packlist-create{display:flex;gap:.5rem;margin-bottom:1.5rem}.packlist-create input{flex:1;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-edit-form{flex:1}.packlist-edit-form input{width:100%;padding:.375rem .5rem;border:1px solid #333;border-radius:4px;font-size:1rem;outline:none}.packlist-item-actions{display:flex;gap:.75rem;margin-left:1rem}.packlist-action{background:none;border:none;color:#888;cursor:pointer;font-size:.8rem;padding:0}.packlist-action:hover{color:#333}.packlist-action-delete:hover{color:#d32f2f}.packdetail-container{min-height:100vh;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-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-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:100vh}.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:100vh;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}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif}
