*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-success: #16a34a;--color-success-light: #f0fdf4;--color-success-border: #86efac;--color-text: #1e293b;--color-text-secondary: #64748b;--color-bg: #f1f5f9;--color-card: #ffffff;--color-border: #e2e8f0;--color-border-hover: #cbd5e1;--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-card: 0 1px 3px rgba(0, 0, 0, .08), 0 1px 2px rgba(0, 0, 0, .06)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Inter,sans-serif;font-size:16px;line-height:1.5;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{line-height:1.3;color:var(--color-text)}.padding-small{padding:var(--space-sm)}.padding-medium{padding:var(--space-md)}.margin-top-small{margin-top:var(--space-sm)}.margin-top-medium{margin-top:var(--space-md)}.text-center{text-align:center}.qa-checklist{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-lg)}.qa-checklist_header{background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:var(--space-md)}.qa-checklist_title{font-size:1.75rem;font-weight:700}.qa-checklist_meta{display:flex;flex-wrap:wrap;gap:var(--space-xs) var(--space-xl)}.qa-checklist_meta p{font-size:.9rem;color:var(--color-text-secondary)}.qa-checklist_overall-progress{display:flex;flex-direction:column;gap:var(--space-xs);padding-top:var(--space-md);border-top:1px solid var(--color-border)}.qa-checklist_overall-text{font-size:.9rem;font-weight:600}.qa-checklist_pages{display:flex;flex-direction:column;gap:var(--space-lg)}.page-row{background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card);transition:border-color .2s}.page-row.is-complete{border-color:var(--color-success-border);background-color:var(--color-success-light)}.page-row_header{display:flex;align-items:center;gap:var(--space-md);cursor:pointer;margin-bottom:0}.page-row.is-open .page-row_header{margin-bottom:var(--space-md)}.page-row_header:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-md)}.page-row_info{display:flex;flex-direction:column;gap:var(--space-xs);flex-grow:1;min-width:0}.page-row_name{font-size:1.15rem;font-weight:600;color:var(--color-text);cursor:pointer}.page-row_url{font-size:.85rem;color:var(--color-primary);text-decoration:underline;cursor:pointer;width:fit-content}.page-row_url:hover{color:var(--color-primary-dark, #1e40af)}.page-row_assignee{margin-top:.25rem}.page-row_assignee-label{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--color-text-secondary)}.page-row_assignee-select{padding:.25rem .5rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:.82rem;font-family:inherit;background-color:var(--color-card);cursor:pointer;transition:border-color .15s}.page-row_assignee-select:focus{outline:none;border-color:var(--color-primary)}.page-row_progress{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;min-width:150px}.page-row_progress-text{font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.page-row_chevron{color:var(--color-text-secondary);flex-shrink:0;transform:rotate(-90deg);transition:transform .2s ease}.page-row_chevron.is-open{transform:rotate(0)}.page-row_checklist{display:flex;flex-direction:column;gap:var(--space-md)}.checklist-category{display:flex;flex-direction:column;gap:var(--space-sm)}.checklist-category_title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--color-text-secondary)}.checklist-category_items{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-sm)}.checkbox-item{display:flex;align-items:center;gap:var(--space-sm);padding:.4rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background-color:var(--color-card);-webkit-user-select:none;user-select:none;transition:background-color .15s,border-color .15s}.checkbox-item:hover{border-color:var(--color-border-hover);background-color:#f8fafc}.checkbox-item.is-checked{border-color:var(--color-success-border);background-color:var(--color-success-light)}.checkbox-item_input{appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid var(--color-border);border-radius:3px;background-color:#fff;flex-shrink:0;cursor:pointer;transition:background-color .15s,border-color .15s}.checkbox-item_input:checked{background-color:var(--color-success);border-color:var(--color-success);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round' d='M3 8l3.5 3.5L13 5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:contain}.checkbox-item_input:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.checkbox-item_label{font-size:.9rem}.checkbox-item_toggle{display:flex;align-items:center;gap:var(--space-sm);flex-grow:1;cursor:pointer}.checkbox-item_na-btn{font-size:.7rem;font-weight:700;color:var(--color-border-hover);background:none;border:1px solid transparent;border-radius:3px;padding:.15rem .4rem;cursor:pointer;flex-shrink:0;transition:color .15s,border-color .15s,background-color .15s}.checkbox-item_na-btn:hover{color:#dc2626;border-color:#fca5a5;background-color:#fee2e2}.checkbox-item.is-na{background-color:#f3f4f6;border-color:#d1d5db}.checkbox-item_na-badge{font-size:.7rem;font-weight:700;color:#6b7280;background-color:#e5e7eb;border-radius:3px;padding:.1rem .4rem;flex-shrink:0}.checkbox-item.is-na .checkbox-item_label{color:var(--color-text-secondary);flex-grow:1}.checkbox-item_restore{font-size:1rem;line-height:1;color:var(--color-text-secondary);background:none;border:none;cursor:pointer;padding:0;flex-shrink:0;transition:color .15s}.checkbox-item_restore:hover{color:var(--color-primary)}.progress-bar{width:100%;height:8px;background-color:var(--color-border);border-radius:4px;overflow:hidden}.progress-bar_fill{height:100%;background-color:var(--color-primary);border-radius:4px;transition:width .3s ease}.progress-bar_fill.is-complete{background-color:var(--color-success)}.app-layout{display:flex;flex-direction:column;min-height:100vh}.app-nav{background-color:var(--color-card);border-bottom:1px solid var(--color-border);padding:var(--space-sm) var(--space-lg);box-shadow:0 1px 2px #0000000f;display:flex;align-items:center;justify-content:space-between}.app-nav_logo{font-size:1.1rem;font-weight:700;color:var(--color-text);text-decoration:none}.app-nav_logo:hover{text-decoration:none;color:var(--color-primary)}.storage-badge{font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px}.storage-badge_local{background-color:#fef3c7;color:#92400e;border:1px solid #fbbf24}.storage-badge_backend{background-color:#d1fae5;color:#065f46;border:1px solid #34d399}.app-main{flex:1;padding:var(--space-xl) var(--space-lg);max-width:960px;margin:0 auto;width:100%;box-sizing:border-box}.btn{display:inline-block;font-size:.9rem;font-weight:600;padding:.5rem 1rem;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;text-decoration:none;transition:background-color .15s,border-color .15s,color .15s;white-space:nowrap}.btn_primary{background-color:var(--color-primary);color:#fff}.btn_primary:hover{background-color:var(--color-primary-hover);text-decoration:none}.btn_secondary{background-color:var(--color-card);color:var(--color-text);border-color:var(--color-border)}.btn_secondary:hover{border-color:var(--color-border-hover);background-color:#f8fafc;text-decoration:none}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:disabled:hover{background-color:var(--color-primary)}.project-dashboard_header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg)}.project-dashboard_title{font-size:1.75rem;font-weight:700}.project-dashboard_empty{color:var(--color-text-secondary);font-size:1rem;margin-top:var(--space-md)}.project-dashboard_grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-lg)}.project-card{position:relative;background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-card);text-decoration:none;color:var(--color-text);display:flex;flex-direction:column;gap:var(--space-sm);transition:border-color .2s,box-shadow .2s}.project-card:hover{border-color:var(--color-primary);box-shadow:0 2px 8px #2563eb26;text-decoration:none}.project-card.is-complete{border-color:var(--color-success-border);background-color:var(--color-success-light)}.project-card_delete{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid transparent;background:none;color:var(--color-text-secondary);font-size:1.5rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s,background-color .15s}.project-card_delete:hover{color:#dc2626;border-color:#fca5a5;background-color:#fee2e2}.project-card_name{font-size:1.2rem;font-weight:700}.project-card_meta{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem;color:var(--color-text-secondary)}.project-card_progress{margin-top:var(--space-sm);display:flex;flex-direction:column;gap:.35rem}.project-card_progress-text{font-size:.85rem;font-weight:600;color:var(--color-text-secondary)}.project-form{max-width:520px}.project-form_header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.project-form_title{font-size:1.75rem;font-weight:700;margin-bottom:0}.project-form_form{display:flex;flex-direction:column;gap:var(--space-md)}.project-form_field{display:flex;flex-direction:column;gap:var(--space-xs)}.project-form_field span{font-size:.9rem;font-weight:600;color:var(--color-text)}.project-form_field input{padding:.55rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.95rem;font-family:inherit;transition:border-color .15s}.project-form_field input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb33}.project-form_field select{padding:.55rem .75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.95rem;font-family:inherit;background-color:var(--color-card);cursor:pointer;transition:border-color .15s}.project-form_field select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb33}.project-form_optional{font-weight:400;color:var(--color-text-secondary)}.dev-form{max-width:580px}.dev-form_header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg);gap:var(--space-md);flex-wrap:wrap}.dev-form_title{font-size:1.4rem;font-weight:700}.dev-form_pages{list-style:none;display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.dev-form_page-item{display:flex;flex-direction:column;gap:.15rem;padding:var(--space-sm) var(--space-md);background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.dev-form_page-name{font-size:.95rem;font-weight:600}.dev-form_page-url{font-size:.82rem;color:var(--color-text-secondary)}.dev-form_page-assignee{font-size:.8rem;color:var(--color-text-secondary);font-weight:500}.dev-form_form{display:flex;flex-direction:column;gap:var(--space-md)}.dev-form_existing{margin-bottom:var(--space-xl)}.dev-form_section-title{font-size:1.1rem;font-weight:700;margin-bottom:var(--space-md)}.dev-form_bulk{margin-bottom:var(--space-xl)}.dev-form_instructions{font-size:.9rem;color:var(--color-text-secondary);margin-bottom:var(--space-sm)}.dev-form_textarea{width:100%;min-height:180px;padding:.75rem;border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:.9rem;font-family:Monaco,Courier New,monospace;resize:vertical;margin-bottom:var(--space-md);transition:border-color .15s}.dev-form_textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb33}.dev-form_review{margin-bottom:var(--space-xl)}.dev-form_review-list{display:flex;flex-direction:column;gap:var(--space-md);margin-bottom:var(--space-lg)}.dev-form_review-item{position:relative;padding:var(--space-md);background-color:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-md)}.dev-form_review-remove{position:absolute;top:.5rem;right:.5rem;width:24px;height:24px;border-radius:var(--radius-sm);border:1px solid transparent;background:none;color:var(--color-text-secondary);font-size:1.3rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:color .15s,border-color .15s,background-color .15s}.dev-form_review-remove:hover{color:#dc2626;border-color:#fca5a5;background-color:#fee2e2}.dev-form_review-fields{display:flex;flex-direction:column;gap:var(--space-sm);padding-right:2rem}.dev-form_review-url{display:flex;gap:.5rem;font-size:.85rem;padding:.5rem 0}.dev-form_review-url-label{font-weight:600;color:var(--color-text-secondary)}.dev-form_review-url-text{color:var(--color-text);word-break:break-all}.btn_large{font-size:1rem;padding:.75rem 1.5rem}.qa-checklist_header-top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}.qa-checklist_header-actions{display:flex;align-items:center;gap:var(--space-sm)}.qa-checklist_empty{color:var(--color-text-secondary);font-size:1rem;margin-top:var(--space-md)}.password-protection{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-xl);background-color:#1169fe}.password-protection_container{background-color:var(--color-card);border-radius:var(--radius-lg);padding:3rem;box-shadow:0 20px 60px #0000004d;max-width:400px;width:100%}.password-protection_header{text-align:center;margin-bottom:var(--space-xl)}.password-protection_title{font-size:2rem;font-weight:700;margin-bottom:var(--space-xs);color:var(--color-text)}.password-protection_subtitle{font-size:.95rem;color:var(--color-text-secondary)}.password-protection_form{display:flex;flex-direction:column;gap:var(--space-lg)}.password-protection_field{display:flex;flex-direction:column;gap:var(--space-xs)}.password-protection_field label{font-weight:600;font-size:.9rem;color:var(--color-text)}.password-protection_field input{padding:.75rem 1rem;font-size:1rem;border:2px solid var(--color-border);border-radius:var(--radius-md);transition:border-color .2s;background-color:var(--color-bg);color:var(--color-text)}.password-protection_field input:focus{outline:none;border-color:var(--color-primary)}.password-protection_error{color:#ef4444;font-size:.9rem;margin:calc(var(--space-sm) * -1) 0 0 0;padding:.5rem;background-color:#fee;border-radius:var(--radius-sm);text-align:center}.password-protection_footer{text-align:center;margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--color-border)}.password-protection_footer p{font-size:.85rem;color:var(--color-text-secondary)}.logout-button{position:fixed;top:1rem;right:1rem;padding:.5rem 1rem;background-color:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-md);color:var(--color-text);font-size:.85rem;cursor:pointer;transition:all .2s;z-index:1000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.logout-button:hover{background-color:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.logout-button:active{transform:translateY(0)}
