:root{--text-primary:#333;--text-secondary:#666;--text-muted:#999;--text-light:#888;--text-tertiary:#999;--bg-primary:#f5f5f5;--bg-secondary:#fff;--bg-tertiary:#f9f9f9;--bg-hover:#e5e7eb;--border-hover:#9ca3af;--background-primary:var(--bg-primary);--background-secondary:var(--bg-secondary);--background-tertiary:var(--bg-tertiary);--border-light:#e0e0e0;--border-medium:#ddd;--border-dark:#ccc;--shadow-sm:0 1px 2px #0000001a;--shadow-md:0 2px 4px #0000001a;--shadow-lg:0 4px 6px #0000001a;--accent-primary:#007bff;--accent-primary-alpha:#007bff33;--accent-primary-dark:#0056b3;--diff-background-color:#fff;--diff-text-color:#24292e;--diff-font-family:Consolas,Courier,monospace;--diff-selection-background-color:#b3d7ff;--diff-selection-text-color:var(--diff-text-color);--diff-gutter-insert-background-color:#d6fedb;--diff-gutter-insert-text-color:var(--diff-text-color);--diff-gutter-delete-background-color:#fadde0;--diff-gutter-delete-text-color:var(--diff-text-color);--diff-gutter-selected-background-color:#fffce0;--diff-gutter-selected-text-color:var(--diff-text-color);--diff-code-insert-background-color:#eaffee;--diff-code-insert-text-color:var(--diff-text-color);--diff-code-delete-background-color:#fdeff0;--diff-code-delete-text-color:var(--diff-text-color);--diff-code-insert-edit-background-color:#c0dc91;--diff-code-insert-edit-text-color:var(--diff-text-color);--diff-code-delete-edit-background-color:#f39ea2;--diff-code-delete-edit-text-color:var(--diff-text-color);--diff-code-selected-background-color:#fffce0;--diff-code-selected-text-color:var(--diff-text-color);--diff-omit-gutter-line-color:#cb2a1d}[data-theme=dark]{--text-primary:#f8f9fa;--text-secondary:#dee2e6;--text-muted:#adb5bd;--text-light:#6c757d;--text-tertiary:#adb5bd;--bg-primary:#0d1117;--bg-secondary:#161b22;--bg-tertiary:#21262d;--bg-hover:#2a2f36;--border-hover:#3a3f46;--background-primary:var(--bg-primary);--background-secondary:var(--bg-secondary);--background-tertiary:var(--bg-tertiary);--border-light:#30363d;--border-medium:#21262d;--border-dark:#6e7681;--shadow-sm:0 1px 2px #0006;--shadow-md:0 2px 4px #0006;--shadow-lg:0 4px 6px #0006;--accent-primary:#4dabf7;--accent-primary-alpha:#4dabf733;--accent-primary-dark:#339af0;--diff-background-color:#0d1117;--diff-text-color:#f0f6fc;--diff-font-family:Consolas,Courier,monospace;--diff-selection-background-color:#264f78;--diff-selection-text-color:var(--diff-text-color);--diff-gutter-insert-background-color:#1a472a;--diff-gutter-insert-text-color:var(--diff-text-color);--diff-gutter-delete-background-color:#5c1a1a;--diff-gutter-delete-text-color:var(--diff-text-color);--diff-gutter-selected-background-color:#4a3c00;--diff-gutter-selected-text-color:var(--diff-text-color);--diff-code-insert-background-color:#0d2818;--diff-code-insert-text-color:var(--diff-text-color);--diff-code-delete-background-color:#2d1616;--diff-code-delete-text-color:var(--diff-text-color);--diff-code-insert-edit-background-color:#1a472a;--diff-code-insert-edit-text-color:var(--diff-text-color);--diff-code-delete-edit-background-color:#5c1a1a;--diff-code-delete-edit-text-color:var(--diff-text-color);--diff-code-selected-background-color:#4a3c00;--diff-code-selected-text-color:var(--diff-text-color);--diff-omit-gutter-line-color:#ff6b6b}:root{--icon-size-xs:12px;--icon-size-sm:16px;--icon-size-md:18px;--icon-size-lg:22px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.projects-page::-webkit-scrollbar{width:6px}.projects-page::-webkit-scrollbar-track{background:var(--bg-tertiary);border-radius:3px}.projects-page::-webkit-scrollbar-thumb{background:var(--border-medium);border-radius:3px}.projects-page::-webkit-scrollbar-thumb:hover{background:var(--border-dark)}.projects-page{height:100%;padding:0 24px 24px;overflow:auto}.projects-page .format-section-header{justify-content:flex-end;align-items:center;gap:8px;width:100%;margin-bottom:8px;display:flex}.projects-page .format-section-header .cover-select-trigger{cursor:pointer;border:none;border-radius:4px;outline:none;justify-content:center;align-items:center;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.projects-page .format-section-header .cover-select-trigger:focus{outline-offset:2px;outline:2px solid #0000}.projects-page .format-section-header .cover-select-trigger:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.projects-page .format-section-header .cover-select-trigger{background:var(--bg-tertiary);border:1px solid var(--border-light);color:var(--text-secondary);white-space:nowrap;cursor:pointer;border-radius:12px;align-items:center;gap:4px;padding:4px 10px;font-size:.75rem;font-weight:500;transition:all .2s;display:inline-flex}.projects-page .format-section-header .cover-select-trigger:hover{background:var(--bg-secondary);border-color:var(--border-medium)}.projects-page .format-section-header .cover-select-trigger:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px var(--accent-primary-alpha);outline:none}.projects-page .format-section-header .cover-select-trigger svg:last-child{opacity:.7;transition:transform .2s}.projects-page .loading,.projects-page .error{padding:24px}.projects-page .page-header{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.projects-page .page-header .header-content h1{margin:0}.projects-page .page-header .header-content p{margin-top:4px}.projects-page .page-header .new-project-link{border:1px solid var(--border-medium);cursor:pointer;border:none;border-radius:4px;outline:none;justify-content:center;align-items:center;padding:8px 12px;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.projects-page .page-header .new-project-link:focus{outline-offset:2px;outline:2px solid #0000}.projects-page .page-header .new-project-link:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.projects-page .page-header .new-project-link{color:#fff;background-color:#007bff}.projects-page .page-header .new-project-link:hover:not(:disabled){background-color:#0056b3;transform:translateY(-1px)}.projects-page .page-header .new-project-link:active:not(:disabled){transform:translateY(0)}.projects-page .page-header .header-actions{align-items:center;gap:8px;display:flex}.projects-page .page-header .view-toggle{border:1px solid var(--border-light);background:0 0;border-radius:999px;gap:8px;padding:4px;display:inline-flex}.projects-page .page-header .view-toggle .toggle-option{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.8rem;display:inline-flex}.projects-page .page-header .view-toggle .toggle-option input{display:none}.projects-page .page-header .view-toggle .toggle-option.active{background:var(--background-secondary);border:1px solid var(--border-medium)}.projects-page .projects-controls{z-index:100;background:var(--bg-primary);border-bottom:1px solid var(--border-light);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding-top:12px;padding-bottom:12px;display:flex;position:sticky;top:0}.projects-page .projects-controls .projects-search{border:1px solid var(--border-light);background:var(--background-secondary);min-width:240px;color:var(--text-primary);border-radius:8px;flex:280px;padding:8px 10px}.projects-page .projects-controls .grouping-controls{border:1px solid var(--border-light);background:0 0;border-radius:8px;gap:8px;height:33px;padding:4px;display:inline-flex}.projects-page .projects-controls .grouping-controls .group-option{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:8px;align-items:center;gap:6px;padding:1px 10px;font-size:.8rem;display:inline-flex}.projects-page .projects-controls .grouping-controls .group-option input{display:none}.projects-page .projects-controls .grouping-controls .group-option.active{background:var(--background-secondary);border:1px solid var(--border-medium)}.projects-page .projects-controls .group-pills{flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;max-width:100%;margin-top:6px;display:flex}.projects-page .projects-controls .group-pill{border:1px solid var(--border-light);background:var(--background-secondary);color:var(--text-primary);cursor:pointer;white-space:nowrap;border-radius:999px;padding:6px 10px;font-size:12px;line-height:1;transition:background .15s,border-color .15s,transform .1s;animation:.3s ease-out both pills-enter}.projects-page .projects-controls .group-pill:hover{background:var(--background-tertiary);border-color:var(--border-medium)}.projects-page .projects-controls .group-pill:active{transform:translateY(1px)}.projects-page .projects-controls .group-pill:first-child{animation-delay:20ms}.projects-page .projects-controls .group-pill:nth-child(2){animation-delay:40ms}.projects-page .projects-controls .group-pill:nth-child(3){animation-delay:60ms}.projects-page .projects-controls .group-pill:nth-child(4){animation-delay:80ms}.projects-page .projects-controls .group-pill:nth-child(5){animation-delay:.1s}.projects-page .projects-controls .group-pill:nth-child(6){animation-delay:.12s}.projects-page .projects-controls .group-pill:nth-child(7){animation-delay:.14s}.projects-page .projects-controls .group-pill:nth-child(8){animation-delay:.16s}.projects-page .projects-controls .group-pill:nth-child(9){animation-delay:.18s}.projects-page .projects-controls .group-pill:nth-child(10){animation-delay:.2s}.projects-page .projects-controls .group-pill:nth-child(11){animation-delay:.22s}.projects-page .projects-controls .group-pill:nth-child(12){animation-delay:.24s}.projects-page .projects-section{margin-top:16px}.projects-page .projects-section__header{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em;margin:12px 0 8px;font-size:14px;font-weight:600}.projects-page .projects-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;margin:.75rem 0 1.5rem;display:grid}.projects-page .project-card{border:1px solid var(--border-medium);border-radius:8px;flex-direction:column;display:flex;position:relative;overflow:hidden}.projects-page .project-card--not-accessible{opacity:1;position:relative}.projects-page .project-card--not-accessible:after{content:"";pointer-events:none;z-index:1;background:#0000001a;position:absolute;inset:0}.projects-page .project-card .carousel-dots{pointer-events:auto;z-index:2;background:#00000059;border-radius:12px;gap:6px;padding:4px 6px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.projects-page .project-card .carousel-dots .dot{cursor:pointer;background:#ffffffb3;border:0;border-radius:50%;width:8px;height:8px;padding:0;transition:background .2s,transform .2s}.projects-page .project-card .carousel-dots .dot.active{background:#fff;transform:scale(1.15)}.projects-page .project-card .project-info{flex-direction:column;flex:1;justify-content:space-between;padding:16px;display:flex}.projects-page .project-card .project-info h3{margin-top:0;margin-bottom:8px}.projects-page .project-card .project-info .project-meta p{color:var(--text-secondary);margin-top:4px}.projects-page .project-card .project-info .project-meta p.project-name{margin-top:8px;font-size:12px}.projects-page .project-card .format-cover-controls{justify-content:flex-end;align-items:center;gap:8px;width:100%;margin-top:0;margin-bottom:.5rem;display:flex}.projects-page .project-card .format-cover-controls .format-pills{border:1px solid var(--border-light);background:0 0;border-radius:999px;gap:6px;padding:4px;display:flex}.projects-page .project-card .format-cover-controls .format-pills .format-pill{background:var(--background-secondary);color:var(--text-primary);cursor:pointer;white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:6px 10px;font-size:12px;line-height:1;transition:background .15s,border-color .15s,transform .1s,color .15s}.projects-page .project-card .format-cover-controls .format-pills .format-pill:hover{background:var(--background-tertiary);border-color:var(--border-medium)}.projects-page .project-card .format-cover-controls .format-pills .format-pill:active{transform:translateY(1px)}.projects-page .project-card .format-cover-controls .format-pills .format-pill.active{color:#fff;background:#007bff;border-color:#0056b3}.projects-page .project-card .formats{flex-direction:column;gap:.75rem;padding:0;display:flex}.projects-page .project-card .format-section{flex-direction:column;gap:.3rem;display:flex}.projects-page .project-card .format-section h5{color:var(--text-primary);margin:0 0 8px;font-size:.9rem;font-weight:600}.projects-page .project-card .format-row{background:var(--bg-tertiary);border:1px solid var(--border-light);border-radius:4px;flex-direction:column;justify-content:space-between;align-items:center;margin-bottom:.4rem;padding:6px;transition:all .2s;display:flex;box-shadow:0 1px 3px #0000001a}.projects-page .project-card .format-row:hover{background:var(--bg-secondary);border-color:var(--border-dark);transform:translateY(-1px);box-shadow:0 2px 6px #00000026}.projects-page .project-card .format-info{flex-direction:column;flex:0 auto;align-items:flex-start;gap:8px;min-width:0;max-width:140px;margin-right:16px;display:flex}.projects-page .project-card .format-info .format-info-header{flex-shrink:0;align-items:center;gap:8px;width:100%;display:flex}.projects-page .project-card .format-info .download-info-hint{color:var(--text-secondary);background:var(--bg-tertiary);border:1px solid var(--border-light);cursor:help;white-space:nowrap;border-radius:3px;flex-shrink:0;align-items:center;gap:.3rem;width:100%;padding:.2rem .4rem;font-size:.65rem;display:flex}.projects-page .project-card .format-info .download-info-hint .hint-text{opacity:.85;font-weight:500}.projects-page .project-card .format-info .download-info-hint svg{opacity:.7;flex-shrink:0}.projects-page .project-card .format-name{color:var(--text-primary);font-size:.8rem;font-weight:500}.projects-page .project-card .status-icon{justify-content:center;width:18px;display:inline-flex}.projects-page .project-card .format-actions{flex-direction:column;flex:auto;gap:6px;width:100%;display:flex}.projects-page .project-card .format-actions>*{width:100%}.projects-page .project-card .format-actions .format-actions-row{flex-direction:row;gap:6px;width:100%;display:flex}.projects-page .project-card .format-actions .format-actions-row .format-action-btn{flex:1}.projects-page .project-card .format-actions .format-actions-container{flex-flow:row;gap:6px;width:100%;display:flex}.projects-page .project-card .format-actions .format-actions-container .action-button{flex:1;min-width:0}.projects-page .project-card .format-actions .zip-download-container .download-button-wrapper{flex-direction:column;gap:.25rem;width:100%;display:flex}.projects-page .project-card .format-actions .zip-download-container .zip-download-button{cursor:pointer;border:none;border-radius:4px;outline:none;justify-content:center;align-items:center;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.projects-page .project-card .format-actions .zip-download-container .zip-download-button:focus{outline-offset:2px;outline:2px solid #0000}.projects-page .project-card .format-actions .zip-download-container .zip-download-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.projects-page .project-card .format-actions .zip-download-container .zip-download-button{color:#fff;background-color:#6c757d}.projects-page .project-card .format-actions .zip-download-container .zip-download-button:hover:not(:disabled){background-color:#5a6268;transform:translateY(-1px)}.projects-page .project-card .format-actions .zip-download-container .zip-download-button:active:not(:disabled){transform:translateY(0)}.projects-page .project-card .format-actions .zip-download-container .zip-download-button{border-radius:3px;justify-content:center;align-items:center;gap:.4rem;width:100%;padding:.3rem .5rem;font-size:.8rem;display:flex}.projects-page .project-card .format-actions .zip-download-container .zip-download-button.zip-available{color:#fff;background-color:#28a745}.projects-page .project-card .format-actions .zip-download-container .zip-download-button.zip-available:hover:not(:disabled){background-color:#218838;transform:translateY(-1px)}.projects-page .project-card .format-actions .zip-download-container .zip-download-button.zip-available:active:not(:disabled){transform:translateY(0)}.projects-page .project-card .format-actions .zip-download-container .zip-download-button.zip-available{border:1px solid var(--border-medium)}.projects-page .project-card .format-actions .zip-download-container .zip-download-button.pdf-only{color:#fff;background-color:#6c757d}.projects-page .project-card .format-actions .zip-download-container .zip-download-button.pdf-only:hover:not(:disabled){background-color:#5a6268;transform:translateY(-1px)}.projects-page .project-card .format-actions .zip-download-container .zip-download-button.pdf-only:active:not(:disabled){transform:translateY(0)}.projects-page .project-card .format-actions .zip-download-container .zip-download-button.pdf-only{border:1px solid var(--border-medium)}.projects-page .project-card .format-actions .zip-download-container .zip-download-button .download-type-label{text-transform:uppercase;letter-spacing:.5px;opacity:.9;font-size:.7rem;font-weight:600}.projects-page .project-card .action-button{cursor:pointer;border:none;border-radius:4px;outline:none;justify-content:center;align-items:center;font-weight:600;text-decoration:none;transition:all .2s;display:inline-flex}.projects-page .project-card .action-button:focus{outline-offset:2px;outline:2px solid #0000}.projects-page .project-card .action-button:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.projects-page .project-card .action-button{color:#fff;background-color:#6c757d}.projects-page .project-card .action-button:hover:not(:disabled){background-color:#5a6268;transform:translateY(-1px)}.projects-page .project-card .action-button:active:not(:disabled){transform:translateY(0)}.projects-page .project-card .action-button{border-radius:3px;justify-content:center;align-items:center;height:28px;padding:.3rem .5rem;font-size:.8rem;display:inline-flex}.projects-page .project-card .action-button.view-button{color:#fff;background-color:#007bff}.projects-page .project-card .action-button.view-button:hover:not(:disabled){background-color:#0056b3;transform:translateY(-1px)}.projects-page .project-card .action-button.view-button:active:not(:disabled){transform:translateY(0)}.projects-page .project-card .action-button.download-button{color:#fff;background-color:#28a745}.projects-page .project-card .action-button.download-button:hover:not(:disabled){background-color:#218838;transform:translateY(-1px)}.projects-page .project-card .action-button.download-button:active:not(:disabled){transform:translateY(0)}.projects-page .project-card .action-button.download-button{border:1px solid var(--border-medium);border-radius:6px;padding:4px 8px}.projects-page .project-card .action-button.disabled,.projects-page .project-card .action-button:disabled{opacity:.6;cursor:not-allowed}.projects-page .project-card .format-loading-spinner{border:2px solid var(--border-light);border-top:2px solid #007bff;border-radius:50%;width:14px;height:14px;animation:1s linear infinite spin;display:inline-block}.projects-page .project-card .no-formats{color:var(--text-muted);font-style:italic}.projects-page .project-card .format-section.actions-section{margin-top:8px}.projects-page .project-card .format-section.actions-section .actions-grid{grid-template-columns:repeat(2,1fr);gap:8px;width:100%;display:grid}.projects-page .project-card .format-section.actions-section .action-grid-item{border:1px solid var(--border-light);background:var(--bg-tertiary);cursor:pointer;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 8px;text-decoration:none;transition:all .2s;display:flex}.projects-page .project-card .format-section.actions-section .action-grid-item:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.projects-page .project-card .format-section.actions-section .action-grid-item .action-grid-icon{border-radius:4px;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.projects-page .project-card .format-section.actions-section .action-grid-item .action-grid-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text-secondary);font-size:.7rem;font-weight:600;transition:color .2s}.projects-page .project-card .format-section.actions-section .action-grid-item--editor .action-grid-icon{color:#28a745;background:#28a74526}.projects-page .project-card .format-section.actions-section .action-grid-item--editor:hover{background:#28a74514;border-color:#28a745}.projects-page .project-card .format-section.actions-section .action-grid-item--editor:hover .action-grid-label{color:#28a745}.projects-page .project-card .format-section.actions-section .action-grid-item--config .action-grid-icon{color:#6f42c1;background:#6f42c126}.projects-page .project-card .format-section.actions-section .action-grid-item--config:hover{background:#6f42c114;border-color:#6f42c1}.projects-page .project-card .format-section.actions-section .action-grid-item--config:hover .action-grid-label{color:#6f42c1}.projects-page .project-card .format-section.actions-section .action-grid-item--covers .action-grid-icon{color:#ffc107;background:#ffc10726}.projects-page .project-card .format-section.actions-section .action-grid-item--covers:hover{background:#ffc10714;border-color:#ffc107}.projects-page .project-card .format-section.actions-section .action-grid-item--covers:hover .action-grid-label{color:#ffc107}.projects-page .project-card .format-section.actions-section .action-grid-item--members .action-grid-icon{color:#17a2b8;background:#17a2b826}.projects-page .project-card .format-section.actions-section .action-grid-item--members:hover{background:#17a2b814;border-color:#17a2b8}.projects-page .project-card .format-section.actions-section .action-grid-item--members:hover .action-grid-label{color:#17a2b8}.format-action-btn{border:1px solid var(--border-light);background:var(--bg-tertiary);cursor:pointer;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;text-decoration:none;transition:all .2s;display:flex}.format-action-btn:hover:not(.disabled):not(:disabled){transform:translateY(-1px);box-shadow:0 2px 8px #00000026}.format-action-btn.disabled,.format-action-btn:disabled{opacity:.5;cursor:not-allowed}.format-action-btn--view{color:#17a2b8;background:#17a2b81f;border-color:#17a2b840}.format-action-btn--view:hover:not(.disabled){background:#17a2b833;border-color:#17a2b8}.format-action-btn--preview{color:#ffc107;background:#ffc1071f;border-color:#ffc10740}.format-action-btn--preview:hover:not(.disabled){background:#ffc10733;border-color:#ffc107}.format-action-btn--edit{color:#6f42c1;background:#6f42c11f;border-color:#6f42c140}.format-action-btn--edit:hover:not(.disabled){background:#6f42c133;border-color:#6f42c1}.format-action-btn--download{flex:1;gap:6px;width:100%;height:28px}.format-action-btn--download .download-label{text-transform:uppercase;letter-spacing:.5px;font-size:.65rem;font-weight:600}.format-action-btn--download.zip-available{color:#28a745;background:#28a7451f;border-color:#28a74540}.format-action-btn--download.zip-available:hover:not(:disabled){background:#28a74533;border-color:#28a745}.format-action-btn--download.pdf-only{color:var(--text-secondary);border-color:var(--border-light);background:#a8a8a81f}.format-action-btn--download.pdf-only:hover:not(:disabled){border-color:var(--border-medium);background:#a8a8a833}.format-action-tooltip{background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-medium);z-index:1000;border-radius:4px;max-width:250px;padding:6px 10px;font-size:.75rem;font-weight:500;line-height:1.4;animation:.15s ease-out tooltipFadeIn;box-shadow:0 4px 12px #00000040}.format-action-tooltip-arrow{fill:var(--bg-primary);stroke:var(--border-medium);stroke-width:1px}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}
