:root{--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-bg: #f8fafc;--color-surface: #ffffff;--color-text: #1e293b;--color-text-secondary: #64748b;--color-border: #e2e8f0;--color-error: #ef4444;--color-success: #22c55e;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6}#app{max-width:1200px;margin:0 auto;padding:1rem}h1,h2,h3{font-weight:600}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);margin-bottom:1.5rem}.nav-bar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem}.nav-left{display:flex;gap:1.5rem}.nav-link{text-decoration:none;color:var(--color-text-secondary);font-weight:500}.nav-link:hover{color:var(--color-primary)}.nav-right{display:flex;align-items:center;gap:1rem}.phase-badge{background:var(--color-primary);color:#fff;padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:600}.user-name{color:var(--color-text-secondary);font-size:.9rem}.btn{padding:.5rem 1rem;border:none;border-radius:var(--radius);cursor:pointer;font-size:.9rem;font-weight:500}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-dark)}.btn-logout{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:.25rem .75rem;border-radius:var(--radius);cursor:pointer}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.25rem;font-weight:500;font-size:.9rem}.form-group input,.form-group textarea{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9rem}.login-container{max-width:400px;margin:4rem auto}.login-form{background:var(--color-surface);padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow)}.error-message{color:var(--color-error);font-size:.9rem;margin-bottom:1rem;padding:.5rem;background:#fef2f2;border-radius:var(--radius)}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:1.5rem 0}.stat-card{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);text-align:center}.stat-card h3{font-size:2rem;color:var(--color-primary)}.stat-card p{color:var(--color-text-secondary);margin-top:.25rem}.project-list{display:grid;gap:1rem}.project-card{background:var(--color-surface);padding:1.25rem;border-radius:var(--radius);box-shadow:var(--shadow)}.project-card h3 a{text-decoration:none;color:var(--color-text)}.project-card h3 a:hover{color:var(--color-primary)}.project-desc{color:var(--color-text-secondary);font-size:.9rem;margin:.5rem 0}.project-meta{display:flex;gap:1rem;font-size:.85rem;color:var(--color-text-secondary);margin-top:.5rem}.project-actions{margin-top:.75rem;display:flex;gap:.5rem}.top-project-row{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--color-surface);border-radius:var(--radius);margin-bottom:.5rem;box-shadow:var(--shadow)}.top-project-row a{text-decoration:none;color:var(--color-text);font-weight:500}.top-project-row span{font-size:.85rem;color:var(--color-text-secondary)}.loading{text-align:center;padding:3rem;color:var(--color-text-secondary)}.empty-state{text-align:center;padding:2rem;color:var(--color-text-secondary)}.error-state{text-align:center;padding:2rem;color:var(--color-error)}.proposal-form,.project-info{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.5rem}.project-info h1{margin-bottom:.5rem}.project-info a{color:var(--color-primary);word-break:break-all}.team-members{margin-top:1rem}.team-members ul{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.team-members li{background:var(--color-bg);padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;color:var(--color-text-secondary);border:1px solid var(--color-border)}.kanban-board{display:flex;gap:1rem;margin-top:1.5rem}.kanban-column{flex:1;min-width:0;background:var(--color-bg);border-radius:var(--radius);padding:1rem;border:1px solid var(--color-border)}.kanban-column h2{font-size:1rem;margin-bottom:1rem;color:var(--color-text-secondary)}.kanban-tasks{display:flex;flex-direction:column;gap:.75rem}.task-card{background:var(--color-surface);padding:1rem;border-radius:var(--radius);box-shadow:var(--shadow)}.task-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.5rem}.task-card .task-title{font-weight:600;font-size:.95rem}.task-card .task-desc{color:var(--color-text-secondary);font-size:.85rem;margin-top:.5rem}.task-card .task-meta{display:flex;gap:1rem;font-size:.8rem;color:var(--color-text-secondary);margin-top:.5rem}.task-card .task-actions{margin-top:.75rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.task-card .task-actions .status-actions{display:flex;gap:.25rem;margin-right:.5rem}.task-card .task-bots,.task-card .task-deps{margin-top:.5rem;font-size:.85rem;display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}.bot-tag{background:var(--color-bg);border:1px solid var(--color-border);padding:.15rem .5rem;border-radius:1rem;font-size:.8rem;display:inline-flex;align-items:center;gap:.25rem}.btn-remove-bot{background:none;border:none;cursor:pointer;color:var(--color-error);font-size:1rem;line-height:1;padding:0}.dep-tag{background:var(--color-bg);border:1px solid var(--color-border);padding:.15rem .5rem;border-radius:1rem;font-size:.8rem}.dep-tag.completed{border-color:var(--color-success);color:var(--color-success)}.status-badge{font-size:.75rem;font-weight:600;padding:.15rem .5rem;border-radius:1rem;white-space:nowrap}.status-badge.open{background:#dbeafe;color:#1d4ed8}.status-badge.in_progress{background:#fef3c7;color:#92400e}.status-badge.completed{background:#dcfce7;color:#166534}.task-form{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.5rem}.contribution-form{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1rem}.btn-danger{background:var(--color-error);color:#fff;border:none;padding:.3rem .6rem;border-radius:var(--radius);cursor:pointer;font-size:.8rem;font-weight:500}.btn-danger:hover{opacity:.9}.btn-small{padding:.25rem .5rem;font-size:.8rem}.btn-secondary{background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);padding:.3rem .6rem;border-radius:var(--radius);cursor:pointer;font-size:.8rem;font-weight:500}.btn-secondary:hover{background:var(--color-bg);color:var(--color-text)}.leaderboard{margin-top:1rem}.leaderboard h2{margin:1.5rem 0 .75rem}.ranking-table{width:100%;border-collapse:collapse;background:var(--color-surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;margin-bottom:1.5rem}.ranking-table th{background:var(--color-primary);color:#fff;padding:.75rem 1rem;text-align:left;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em}.ranking-table td{padding:.75rem 1rem;border-bottom:1px solid var(--color-border);font-size:.9rem}.ranking-table tr:last-child td{border-bottom:none}.ranking-table tr:hover td{background:var(--color-bg)}.ranking-table a{color:var(--color-primary);text-decoration:none;font-weight:500}.ranking-table a:hover{text-decoration:underline}.rank-num{font-weight:700;color:var(--color-primary)}.admin-header{border-bottom:2px solid var(--color-primary)}.admin-badge{background:#7c3aed;color:#fff;padding:.25rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:600}.admin-panel h1{margin-bottom:1.5rem}.admin-section{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:1.5rem}.admin-section h2{margin-bottom:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.admin-section h3{margin:1rem 0 .5rem;font-size:.95rem}.admin-count{background:var(--color-bg);padding:.15rem .5rem;border-radius:1rem;font-size:.85rem;color:var(--color-text-secondary);font-weight:400}.role-badge{font-size:.8rem;font-weight:600;padding:.15rem .5rem;border-radius:1rem}.role-badge--participant{background:#dbeafe;color:#1d4ed8}.role-badge--admin{background:#ede9fe;color:#7c3aed}.form-group select{width:100%;padding:.5rem;border:1px solid var(--color-border);border-radius:var(--radius);font-size:.9rem;background:var(--color-surface)}.phase-stepper{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 0}.phase-step{display:flex;flex-direction:column;align-items:center;position:relative;z-index:1;flex:0 0 auto}.phase-step__circle{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;border:3px solid var(--color-border);background:var(--color-surface);color:var(--color-text-secondary);transition:all .3s ease}.phase-step__label{margin-top:.5rem;font-size:.8rem;color:var(--color-text-secondary);font-weight:500;text-align:center;white-space:nowrap}.phase-step--completed .phase-step__circle{background:var(--color-success);border-color:var(--color-success);color:#fff}.phase-step--completed .phase-step__label{color:var(--color-success);font-weight:600}.phase-step--active .phase-step__circle{background:var(--color-primary);border-color:var(--color-primary);color:#fff;width:44px;height:44px;font-size:.85rem;box-shadow:0 0 0 4px #2563eb33}.phase-step--active .phase-step__label{color:var(--color-primary);font-weight:700}.phase-connector{flex:1;height:3px;background:var(--color-border);margin:0 .25rem 1.5rem}.phase-connector--completed{background:var(--color-success)}.phase-controls{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1rem;flex-wrap:wrap}.phase-info{color:var(--color-text-secondary);font-size:.9rem}.btn-advance:disabled{background:var(--color-border);color:var(--color-text-secondary);cursor:not-allowed}.activity-feed{max-height:300px;overflow-y:auto;border:1px solid var(--color-border);border-radius:var(--radius);padding:.5rem}.activity-feed .empty-state{padding:1rem}.activity-item{display:flex;align-items:center;gap:.75rem;padding:.4rem .5rem;border-bottom:1px solid var(--color-border);font-size:.85rem}.activity-item:last-child{border-bottom:none}.activity-type{font-size:.7rem;font-weight:600;padding:.1rem .4rem;border-radius:.25rem;text-transform:uppercase;white-space:nowrap}.activity-type--phase{background:#ede9fe;color:#7c3aed}.activity-type--task{background:#dbeafe;color:#1d4ed8}.activity-type--contribution{background:#dcfce7;color:#166534}.activity-type--team{background:#fef3c7;color:#92400e}.activity-msg{flex:1;color:var(--color-text)}.activity-time{color:var(--color-text-secondary);font-size:.8rem;white-space:nowrap}@media (max-width: 1024px){.kanban-board{flex-direction:column}.kanban-column{width:100%}.stats-grid{grid-template-columns:1fr 1fr}.nav-bar{flex-direction:column;gap:.75rem}}@media (max-width: 768px){.stats-grid{grid-template-columns:1fr}.ranking-table{font-size:.85rem}.ranking-table th,.ranking-table td{padding:.5rem .75rem}#app{padding:.5rem}.project-info{padding:1rem}.phase-stepper{flex-direction:column;gap:.5rem}.phase-connector{width:3px;height:20px;flex:none;margin:0}.phase-controls{flex-direction:column;align-items:flex-start}}.docs-container{max-width:900px;margin:0 auto;padding:1rem 0}.docs-tabs{display:flex;gap:0;border-bottom:2px solid var(--color-border);margin-bottom:1.5rem;overflow-x:auto}.docs-tab{padding:.75rem 1.25rem;border:none;background:none;cursor:pointer;font-size:.9rem;font-weight:500;color:var(--color-text-secondary);border-bottom:2px solid transparent;margin-bottom:-2px;white-space:nowrap}.docs-tab:hover{color:var(--color-primary)}.docs-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:600}.docs-content{background:var(--color-surface);padding:2rem;border-radius:var(--radius);box-shadow:var(--shadow)}.docs-section h2{margin:1.5rem 0 .75rem;padding-bottom:.5rem;border-bottom:1px solid var(--color-border)}.docs-section h2:first-child{margin-top:0}.docs-section h3{margin:1.25rem 0 .5rem;color:var(--color-text)}.docs-section p{margin:.5rem 0;color:var(--color-text-secondary)}.docs-section ul,.docs-section ol{margin:.5rem 0 .5rem 1.5rem;color:var(--color-text-secondary)}.docs-section li{margin:.25rem 0}.docs-section code{background:var(--color-bg);padding:.15rem .4rem;border-radius:4px;font-size:.85rem;color:var(--color-primary-dark)}.docs-section pre{background:var(--color-bg);padding:1rem;border-radius:var(--radius);overflow-x:auto;margin:.75rem 0;border:1px solid var(--color-border)}.docs-section pre code{background:none;padding:0;color:var(--color-text)}.docs-section table{width:100%;border-collapse:collapse;margin:.75rem 0}.docs-section th{background:var(--color-bg);padding:.5rem .75rem;text-align:left;font-weight:600;font-size:.85rem;border:1px solid var(--color-border)}.docs-section td{padding:.5rem .75rem;border:1px solid var(--color-border);font-size:.9rem}.docs-section .phase-flow{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;margin:1rem 0}.docs-section .phase-item{background:var(--color-primary);color:#fff;padding:.4rem .8rem;border-radius:1rem;font-size:.85rem;font-weight:600}.docs-section .phase-arrow{color:var(--color-text-secondary);font-weight:700}@media (max-width: 768px){.docs-container{padding:.5rem 0}.docs-content{padding:1rem}.docs-tabs{gap:0}.docs-tab{padding:.5rem .75rem;font-size:.8rem}}
