.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;cursor:pointer;flex-shrink:0}.toggle-switch input{position:absolute;opacity:0;width:0;height:0}.toggle-slider{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.2s;border-radius:12px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:2px;top:50%;transform:translateY(-50%);background-color:#fff;transition:.2s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:#c9a690}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px) translateY(-50%)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 2px #c9a69040}.log-dashboard{padding:1rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.dashboard-header h2{margin:0;font-size:1.25rem;font-weight:600}.log-count{color:var(--text-secondary);font-size:.875rem}.log-filters{background:var(--card-hover-bg);border-radius:8px;padding:1rem;margin-bottom:1rem}.filter-row{display:flex;gap:1rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.25rem;min-width:150px}.filter-group label{font-size:.75rem;font-weight:500;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.filter-group select,.filter-group input{padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem;background:var(--input-bg);color:var(--text-color)}.filter-group select:focus,.filter-group input:focus{outline:none;border-color:#c9a690}.search-group{flex:1;min-width:200px}.log-table-container{overflow-x:auto}.log-table{width:100%;border-collapse:collapse;font-size:.875rem;background:transparent}.log-table th{text-align:left;padding:.75rem;background:var(--card-hover-bg);border-bottom:2px solid var(--border-color);font-weight:600;color:var(--text-secondary);text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}.log-table td{padding:.75rem;border-bottom:1px solid var(--border-color)}.log-row{cursor:pointer;transition:background-color .15s ease;background:transparent}.log-row:hover{background-color:var(--card-hover-bg)}.log-row.severity-warning{border-left:3px solid #f59e0b}.log-row.severity-important{border-left:3px solid #ef4444}.timestamp{color:var(--text-secondary);white-space:nowrap}.category{font-weight:500}.event-type{font-family:monospace;color:var(--text-secondary)}.user{color:var(--text-secondary)}.project{font-weight:500;color:var(--text-color)}.severity-badge{display:inline-block;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:lowercase}.severity-badge.info{background:var(--severity-info-bg, #e0f2fe);color:var(--severity-info-text, #0369a1)}.severity-badge.warning{background:var(--severity-warning-bg, #fef3c7);color:var(--severity-warning-text, #b45309)}.severity-badge.important{background:var(--severity-important-bg, #fee2e2);color:var(--severity-important-text, #dc2626)}.log-details-row td{padding:0;background:var(--card-hover-bg)}.log-details{padding:1rem;border-left:3px solid #c9a690}.log-details pre{margin:0;padding:.75rem;background:var(--input-bg);border-radius:4px;font-size:.8125rem;overflow-x:auto;max-height:200px;color:var(--text-color)}.entity-info{margin-top:.5rem;font-size:.75rem;color:var(--text-secondary)}.log-table-loading,.log-table-empty{padding:3rem;text-align:center;color:var(--text-secondary)}.admin-form{min-width:500px;max-width:600px}.admin-form h2{margin:0 0 1.5rem;font-size:1.25rem;font-weight:600;color:var(--text-color)}.admin-form .form-error{background:#fee2e2;color:#dc2626;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.admin-form .form-group{margin-bottom:1rem}.admin-form .form-group label{display:block;font-size:.875rem;font-weight:500;color:var(--text-color);margin-bottom:.375rem}.admin-form .form-group input[type=text],.admin-form .form-group input[type=number],.admin-form .form-group input[type=datetime-local],.admin-form .form-group textarea,.admin-form .form-group select{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;background:var(--input-bg, var(--bg-color));color:var(--text-color);transition:border-color .2s}.admin-form .form-group input:focus,.admin-form .form-group textarea:focus,.admin-form .form-group select:focus{outline:none;border-color:var(--primary-color, #c9a690)}.admin-form .form-group input:disabled,.admin-form .form-group textarea:disabled,.admin-form .form-group select:disabled{background:var(--card-hover-bg);cursor:not-allowed;opacity:.7}.admin-form .form-group input.error,.admin-form .form-group textarea.error,.admin-form .form-group select.error{border-color:#dc2626}.admin-form .form-group input::placeholder,.admin-form .form-group textarea::placeholder{color:var(--text-tertiary, #999)}.admin-form .form-group textarea{resize:vertical;min-height:80px}.admin-form .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 500px){.admin-form{min-width:auto;width:100%}.admin-form .form-row{grid-template-columns:1fr}}.admin-form .name-preview{display:block;font-size:.75rem;color:var(--text-tertiary, #6b7280);margin-top:.25rem}.admin-form .char-count{display:block;font-size:.75rem;color:var(--text-tertiary, #6b7280);text-align:right;margin-top:.25rem}.admin-form .field-hint{display:block;font-size:.75rem;color:var(--text-tertiary, #6b7280);margin-top:.25rem}.admin-form .field-error{display:block;font-size:.75rem;color:#dc2626;margin-top:.25rem}.admin-form .field-warning{display:block;font-size:.75rem;color:#f59e0b;margin-top:.25rem}.admin-form .protected-notice{background:#f59e0b26;color:#b45309;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.admin-form .form-group .checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer}.admin-form .form-group .checkbox-label input[type=checkbox]{width:1rem;height:1rem;margin:0;cursor:pointer;position:relative;top:2px}.admin-form .checkbox-text{font-size:.875rem;font-weight:500;color:var(--text-color)}.admin-form .form-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border-color)}.admin-form .btn{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s}.admin-form .btn-secondary{background:var(--card-hover-bg);border:1px solid var(--border-color);color:var(--text-color)}.admin-form .btn-secondary:hover{background:var(--border-color)}.admin-form .btn-primary{background:#c9a690;border:1px solid #b8957f;color:#fff}.admin-form .btn-primary:hover:not(:disabled){background:#b8957f}.admin-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}.experiment-dashboard{--experiment-control-color: #6366f1;--experiment-treated-color: #10b981;--experiment-positive-color: #10b981;--experiment-negative-color: #ef4444;padding:1.5rem}.experiment-header{margin-bottom:1.5rem}.experiment-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.75rem}.experiment-selector-row{display:flex;align-items:center;gap:.75rem;flex:1}.experiment-selector-row label{font-size:.875rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.experiment-select{flex:1;max-width:350px;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;background:var(--input-bg);color:var(--text-color);cursor:pointer}.experiment-select:focus{outline:none;border-color:var(--primary-color, #c9a690)}.status-badge{display:inline-flex;align-items:center;padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.025em}.status-badge.active{background:#10b98126;color:#10b981}.status-badge.complete{background:#6b728026;color:#6b7280}.status-badge.draft{background:#f59e0b26;color:#f59e0b}.status-badge.paused{background:#6b728026;color:#6b7280}.status-badge.archived{background:#6b728026;color:#9ca3af}.experiment-description{font-size:.9375rem;color:var(--text-secondary);margin:0 0 .5rem}.experiment-dates{display:flex;flex-wrap:wrap;gap:1rem;font-size:.8125rem;color:var(--text-tertiary, #999)}.experiment-population{padding-left:1rem;border-left:1px solid var(--border-color)}.dashboard-error{background:#fee2e2;color:#dc2626;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.experiment-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.experiment-actions{display:flex;gap:.5rem}.btn-action{padding:.375rem .75rem;border-radius:4px;font-size:.8125rem;font-weight:500;cursor:pointer;background:var(--card-hover-bg, #f9fafb);border:1px solid var(--border-color);color:var(--text-color);transition:all .2s}.btn-action:disabled{opacity:.6;cursor:not-allowed}.btn-action.btn-archive{color:#6b7280;border-color:#d1d5db;background:var(--card-hover-bg, #f9fafb)}.btn-action.btn-archive:hover:not(:disabled){background:#e5e7eb;color:#4b5563}.btn-action.btn-restore{color:#059669;border-color:#a7f3d0;background:#ecfdf5}.btn-action.btn-restore:hover:not(:disabled){background:#d1fae5;color:#047857}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:1.5rem}.experiment-metric-card{background:var(--card-hover-bg, #f9fafb);border-radius:8px;padding:1rem 1.25rem;border:1px solid var(--border-color)}.metric-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-tertiary, #6b7280);margin-bottom:.5rem}.metric-value{font-size:1.75rem;font-weight:700;color:var(--text-color);line-height:1.2;display:flex;align-items:center;gap:.5rem}.metric-value.positive{color:var(--experiment-positive-color)}.metric-value.negative{color:var(--experiment-negative-color)}.significance-indicator{display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;background:var(--experiment-positive-color);color:#fff;border-radius:50%;font-size:.75rem;font-weight:700}.metric-subtitle{font-size:.75rem;color:var(--text-tertiary, #6b7280);margin-top:.375rem}.charts-container{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}@media (max-width: 900px){.charts-container{grid-template-columns:1fr}}.chart-section{background:var(--card-hover-bg, #f9fafb);border-radius:8px;padding:1.25rem;border:1px solid var(--border-color)}.chart-section h3{font-size:.9375rem;font-weight:600;color:var(--text-color);margin:0 0 1rem}.no-experiments{text-align:center;color:var(--text-secondary);padding:2rem}.no-data-message{text-align:center;padding:3rem 2rem;background:var(--card-hover-bg, #f9fafb);border-radius:8px;border:1px dashed var(--border-color)}.no-data-message p{margin:0;color:var(--text-secondary)}.no-data-hint{font-size:.875rem;color:var(--text-tertiary, #999);margin-top:.5rem!important}.chart-legend{display:flex;justify-content:center;gap:1.5rem;margin-top:.75rem;font-size:.8125rem}.legend-item{display:flex;align-items:center;gap:.375rem;color:var(--text-secondary)}.legend-color{width:12px;height:12px;border-radius:2px}.legend-color.control{background:var(--experiment-control-color)}.legend-color.treated{background:var(--experiment-treated-color)}.legend-color.control-line{background:var(--experiment-control-color);height:2px;width:16px;border-style:dashed}@media (max-width: 640px){.experiment-dashboard{padding:1rem}.experiment-selector-row{flex-wrap:wrap}.experiment-select{max-width:100%;order:1;flex-basis:100%}.status-badge{order:0}.experiment-dates{flex-direction:column;gap:.25rem}.experiment-population{padding-left:0;border-left:none}.metrics-grid{grid-template-columns:1fr 1fr}.metric-value{font-size:1.375rem}}@media (max-width: 480px){.metrics-grid{grid-template-columns:1fr}}.btn-archive-confirm{background:#6b7280;color:#fff;border:1px solid #4b5563}.btn-archive-confirm:hover{background:#4b5563}.feature-flags-list{padding:1.5rem}.flags-header{margin-bottom:1.5rem}.flags-header-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.search-container{flex:1;max-width:400px}.search-input{width:100%;padding:.5rem .75rem;border:1px solid var(--border-color);border-radius:6px;font-size:.875rem;background:var(--input-bg, var(--bg-color));color:var(--text-color)}.search-input:focus{outline:none;border-color:var(--primary-color, #c9a690)}.search-input::placeholder{color:var(--text-tertiary, #999)}.create-btn{padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;background:#c9a690;border:1px solid #b8957f;color:#fff;white-space:nowrap;transition:background .2s}.create-btn:hover{background:#b8957f}.pending-changes-bar{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:#f59e0b26;border:1px solid rgba(245,158,11,.3);border-radius:6px;margin-bottom:1rem}.pending-count{font-size:.875rem;font-weight:500;color:#b45309}.pending-actions{display:flex;gap:.5rem}.pending-actions .btn{padding:.375rem .75rem;font-size:.8125rem}.flags-error{background:#fee2e2;color:#dc2626;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.875rem}.loading-message{text-align:center;color:var(--text-secondary);padding:2rem}.no-flags-message{text-align:center;padding:3rem 2rem;background:var(--card-hover-bg, #f9fafb);border-radius:8px;border:1px dashed var(--border-color)}.no-flags-message p{margin:0;color:var(--text-secondary)}.no-flags-hint{font-size:.875rem;color:var(--text-tertiary, #999);margin-top:.5rem!important}.flags-table-container{overflow-x:auto}.flags-table{width:100%;border-collapse:collapse;font-size:.875rem}.flags-table th{text-align:left;padding:.75rem 1rem;background:var(--card-hover-bg, #f9fafb);border-bottom:2px solid var(--border-color);font-weight:600;color:var(--text-color);white-space:nowrap}.flags-table td{padding:.75rem 1rem;border-bottom:1px solid var(--border-color);vertical-align:middle}.flags-table tr:hover{background:var(--card-hover-bg, #f9fafb)}.flags-table tr.staged-row{background:#f59e0b14}.flags-table tr.staged-row:hover{background:#f59e0b1f}.flag-key-cell{white-space:nowrap}.flag-key-cell code{font-family:SF Mono,Monaco,Consolas,monospace;font-size:.8125rem;background:var(--card-hover-bg, #f0f0f0);padding:.125rem .375rem;border-radius:3px}.experiment-badge{margin-left:.5rem;font-size:.875rem;cursor:help}.parent-badge{display:block;font-size:.75rem;color:var(--text-tertiary, #6b7280);margin-top:.25rem}.flag-description-cell{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.no-description{color:var(--text-tertiary, #999);font-style:italic}.flag-enabled-cell{white-space:nowrap}.staged-indicator{display:block;font-size:.6875rem;color:#b45309;margin-top:.25rem;font-style:italic}.flag-tier-cell{white-space:nowrap}.tier-badge{display:inline-flex;align-items:center;padding:.125rem .5rem;border-radius:9999px;font-size:.75rem;font-weight:500}.tier-badge.tier-all{background:#6b728026;color:#6b7280}.tier-badge.tier-paid{background:#6366f126;color:#6366f1}.flag-actions-cell{white-space:nowrap}.btn-action{padding:.25rem .625rem;border-radius:4px;font-size:.75rem;font-weight:500;cursor:pointer;background:var(--card-hover-bg, #f9fafb);border:1px solid var(--border-color);color:var(--text-color);transition:all .2s;margin-right:.375rem}.btn-action:last-child{margin-right:0}.btn-action:hover:not(:disabled){background:var(--border-color)}.btn-action:disabled{opacity:.5;cursor:not-allowed}.btn-action.btn-delete{color:#6b7280}.btn-action.btn-delete:hover:not(:disabled){background:#fee2e2;color:#dc2626;border-color:#fecaca}.confirm-dialog{text-align:center;padding:.5rem}.confirm-dialog h3{margin:0 0 1rem;font-size:1.125rem;color:var(--text-color)}.confirm-dialog p{margin:0 0 1.5rem;color:var(--text-secondary);font-size:.9375rem;line-height:1.5}.confirm-dialog code{font-family:SF Mono,Monaco,Consolas,monospace;background:var(--card-hover-bg, #f0f0f0);padding:.125rem .375rem;border-radius:3px}.confirm-actions{display:flex;justify-content:center;gap:.75rem}.btn-delete-confirm{background:#dc2626;color:#fff;border:1px solid #b91c1c;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer}.btn-delete-confirm:hover{background:#b91c1c}.btn-secondary{background:var(--card-hover-bg);border:1px solid var(--border-color);color:var(--text-color);padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer}.btn-secondary:hover{background:var(--border-color)}.btn-primary{background:#c9a690;border:1px solid #b8957f;color:#fff;padding:.5rem 1rem;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer}.btn-primary:hover:not(:disabled){background:#b8957f}.btn-primary:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.feature-flags-list{padding:1rem}.flags-header-row{flex-direction:column;align-items:stretch}.search-container{max-width:100%}.pending-changes-bar{flex-direction:column;gap:.75rem;text-align:center}.flags-table th,.flags-table td{padding:.5rem .75rem}.flag-description-cell{max-width:150px}}.admin-dashboard{max-width:1400px;margin:0 auto;padding:1rem}.admin-header{margin-bottom:1.5rem}.admin-header .back-link{color:var(--text-secondary);cursor:pointer;font-size:.875rem;margin-bottom:.5rem;display:inline-block}.admin-header .back-link:hover{color:var(--primary-color, #c9a690)}.admin-header h1{margin:0;font-size:1.75rem;font-weight:600;color:var(--text-color)}.admin-tabs{display:flex;gap:.5rem;border-bottom:2px solid var(--border-color);margin-bottom:1.5rem}.admin-tab{padding:.75rem 1.25rem;background:transparent;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;font-size:.9375rem;font-weight:500;color:var(--text-secondary);transition:all .15s ease}.admin-tab:hover{color:var(--text-color);background:var(--card-hover-bg)}.admin-tab.active{color:var(--primary-color, #c9a690);border-bottom-color:var(--primary-color, #c9a690)}.admin-content{background:var(--card-bg);border-radius:8px;box-shadow:0 1px 3px #0000001a}.system-log-dashboard{padding:1.5rem}.project-filter-row{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;padding:.75rem 1rem;background:var(--card-hover-bg);border-radius:6px}.project-filter-row label{font-size:.875rem;font-weight:500;color:var(--text-secondary);white-space:nowrap}.project-filter-select{flex:1;max-width:300px;padding:.5rem;border:1px solid var(--border-color);border-radius:4px;font-size:.875rem;background:var(--input-bg);color:var(--text-color)}.project-filter-select:focus{outline:none;border-color:var(--primary-color, #c9a690)}:root{--bg-color: #ffeecf;--text-color: #253c78;--text-secondary: #7f8c8d;--card-bg: #ffffff;--card-bg-solid: #ffffff;--card-hover-bg: #f8f9fa;--border-color: #e0e0e0;--header-color: #253c78;--card-border: #253c78;--card-border-inner: #ffffff;--input-bg: #ffffff;--color-danger: #e74c3c}*{box-sizing:border-box;margin:0;padding:0}button,input,select,textarea{font-family:inherit}.input-box{padding:10px 12px;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;background:var(--input-bg);color:var(--text-color)}.error-text{color:var(--color-danger);font-size:.9rem}.flex-row{display:flex;gap:8px}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--bg-color);color:var(--text-color);line-height:1.5;min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:20px;position:relative;z-index:1}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px;padding-bottom:20px;border-bottom:2px solid var(--border-color)}header h1{font-size:1.8rem;color:var(--header-color)}.btn{padding:8px 16px;border:2px solid transparent;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s}.btn-primary{background:#c9a690;color:#fff;border-color:#b8957f}.btn-primary:hover{background:#b8957f}.btn-secondary{background:var(--card-hover-bg);color:var(--text-color)}.btn-secondary:hover{background:var(--btn-secondary-hover-bg)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#c0392b}.btn-success{background:#27ae60;color:#fff}.btn-success:hover{background:#219a52}.btn-small{padding:4px 10px;font-size:.8rem}.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.project-card{background:var(--card-bg);border-radius:8px;padding:20px;border:3px solid var(--card-border);box-shadow:inset 0 0 0 2px var(--card-border-inner),inset 0 0 0 4px var(--card-border);cursor:pointer;transition:transform .2s,border-color .2s,box-shadow .2s}.project-card:hover{transform:translateY(-2px);border-color:#c9a690;box-shadow:inset 0 0 0 2px var(--card-border-inner),inset 0 0 0 4px #c9a690}.project-card h3{margin-bottom:8px;color:var(--header-color)}.project-card p{color:var(--text-secondary);font-size:.9rem;margin-bottom:15px}.project-card .meta{display:flex;gap:15px;font-size:.85rem;color:#95a5a6}.project-detail{background:var(--card-bg);border-radius:8px;padding:25px;border:3px solid var(--card-border);box-shadow:inset 0 0 0 2px var(--card-border-inner),inset 0 0 0 4px var(--card-border)}.project-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:25px}.project-header-edit{flex:1}.project-meta{margin-top:5px;color:var(--text-secondary)}.project-description{color:var(--text-secondary)}.header-actions{display:flex;gap:8px;align-items:flex-start}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.back-link{color:#c9a690;cursor:pointer;font-size:.9rem;margin-bottom:10px}.back-link:hover{text-decoration:underline}.tabs{display:flex;gap:5px;margin-bottom:20px;border-bottom:2px solid var(--border-color)}.tab{padding:10px 20px;background:none;border:none;cursor:pointer;font-size:.95rem;color:#7f8c8d;border-bottom:2px solid transparent;margin-bottom:-2px}.tab:hover{color:#c9a690}.tab.active{color:#c9a690;border-bottom-color:#c9a690}.section{margin-bottom:30px}.section h3{margin-bottom:15px;display:flex;justify-content:space-between;align-items:center}.items-list{display:flex;flex-direction:column;gap:10px}.item-card{background:var(--card-hover-bg);border-radius:8px;padding:15px;display:flex;justify-content:space-between;align-items:center}.item-card .info{min-width:0;flex:1}.item-card .info h4{margin-bottom:4px}.item-card .info p{font-size:.85rem;color:var(--text-secondary)}.item-card .actions{display:flex;gap:8px;flex-shrink:0}.badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:.75rem;font-weight:500}.badge-locked{background:var(--badge-warning-bg);color:var(--badge-warning-text)}.badge-unlocked{background:var(--badge-positive-bg);color:var(--badge-positive-text)}.badge-type{background:var(--badge-neutral-bg);color:var(--badge-neutral-text)}.badge-status{color:var(--badge-status-text)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal{background:var(--card-bg-solid);border-radius:8px;padding:25px;width:90%;max-width:650px;max-height:90vh;overflow-y:auto;border:3px solid var(--card-border);box-shadow:inset 0 0 0 2px var(--card-border-inner),inset 0 0 0 4px var(--card-border)}.modal h2{margin-bottom:20px}.confirm-dialog p{margin:0 0 20px;font-size:1rem}.confirm-dialog-actions{display:flex;gap:10px;justify-content:flex-end}.form-group{margin-bottom:15px}.form-group label{display:block;margin-bottom:5px;font-weight:500}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px;border:1px solid var(--border-color);border-radius:6px;font-size:.95rem;background:var(--input-bg);color:var(--text-color)}.form-group textarea{min-height:100px;resize:vertical}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.empty-state{text-align:center;padding:40px;color:#95a5a6}.snapshots-list .snapshot-card{background:var(--card-hover-bg);border-radius:8px;padding:15px;margin-bottom:10px}.snapshot-card .header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.snapshot-card .meta{font-size:.85rem;color:#7f8c8d}.component-data{margin-top:10px;padding:10px;background:var(--card-hover-bg);border-radius:6px;font-size:.85rem}.component-data dt{font-weight:600;color:var(--text-color)}.component-data dd{margin-bottom:5px;color:var(--text-secondary)}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}button,.btn,.tab,.clickable,.project-card{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.offline-banner{position:fixed;top:0;left:0;right:0;background:var(--color-danger);color:#fff;text-align:center;padding:8px;font-size:.9rem;z-index:9999;animation:slideDown .3s ease}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}.analytics-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.analytics-grid>*{min-width:0}@media (max-width: 768px){.analytics-grid{grid-template-columns:1fr}.app{padding:15px}header{flex-direction:column;align-items:flex-start;gap:15px}header h1{font-size:1.5rem}.tabs{flex-wrap:wrap;gap:0}.tab{padding:10px 12px;font-size:.85rem}.btn,.tab,input,select,textarea{min-height:44px}.projects-grid{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)!important}.project-header{flex-direction:column;gap:15px}.modal{width:95%;padding:20px;margin:10px}.item-card{flex-direction:column;align-items:flex-start;gap:10px}.item-card .actions{width:100%;justify-content:flex-end}}@media (max-width: 480px){.app{padding:10px}header h1{font-size:1.3rem}.stats-grid{grid-template-columns:1fr!important}.tab{padding:8px 10px;font-size:.8rem}.btn{padding:10px 14px;font-size:.85rem}.btn-small{padding:6px 10px;font-size:.75rem}.section{margin-bottom:20px}.section h3{font-size:1rem}}@media (display-mode: standalone){body{padding-top:max(env(safe-area-inset-top),10px)}}.btn,.tab,.project-card{user-select:none;-webkit-user-select:none}html{scroll-behavior:smooth}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.tab:focus-visible{outline:2px solid #c9a690;outline-offset:2px}.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0}.toggle-label{font-weight:500;display:block}.toggle-indent{margin-top:8px;padding-left:16px;border-left:3px solid #c9a690}.radio-pills{display:flex;gap:6px;margin:6px 0}.radio-pill{padding:6px 14px;border:1px solid var(--border-color);border-radius:4px;font-size:.85rem;cursor:pointer;transition:.15s}.radio-pill.selected{background:#f5ece6;border-color:#c9a690;color:#c9a690;font-weight:600}.badge-live{background:var(--color-danger);color:#fff;animation:pulse 2s infinite}.badge-live-source{background:var(--badge-neutral-bg);color:var(--badge-neutral-text)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.playtest-notes-fallback{margin-top:10px;padding:10px;background:var(--card-hover-bg);border-radius:6px;font-size:.9rem;white-space:pre-line}hr.divider{border:none;border-top:1px solid var(--border-color);margin:16px 0}.form-hint{font-size:.8rem;color:var(--text-secondary);margin-top:3px}.label-optional{font-weight:400;color:var(--text-secondary)}.timer-display{font-size:.9rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.session-lobby{padding:10px 0}.session-lobby-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.session-lobby-header h3{margin:0}.session-lobby-center{text-align:center;padding:20px 0}.session-lobby-share-heading{font-size:1rem;font-weight:600;margin-bottom:4px}.session-lobby-share-subtitle{font-size:.85rem;color:var(--text-secondary);margin-bottom:16px}.session-lobby-qr-centered{display:flex;justify-content:center;margin:12px 0}.session-lobby-join-url{background:var(--card-hover-bg);padding:10px 14px;border-radius:6px;font-family:monospace;font-size:.85rem;text-align:center;margin:8px auto;word-break:break-all;color:var(--text-color);max-width:400px}.session-lobby-count{margin:24px 0}.session-lobby-players-card{background:var(--card-hover-bg);border-radius:8px;padding:20px;text-align:left;max-width:400px;margin:0 auto 20px}.session-lobby-players-card h4{margin-bottom:10px}.session-lobby-waiting{color:var(--text-secondary);font-size:.85rem}.session-lobby-start-btn{padding:10px 28px;font-size:1rem}.session-lobby-start-hint{font-size:.75rem;color:var(--text-secondary);margin-top:8px}.session-participant-list{list-style:none;padding:0;margin:0}.session-participant{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border-radius:6px;background:var(--card-hover-bg);margin-bottom:6px}.session-lobby-players-card .session-participant{background:var(--card-bg-solid)}.session-participant-name{font-weight:500}.session-participant-status{font-size:.8rem;padding:2px 8px;border-radius:10px}.session-participant-status.connected{background:#d4edda;color:#155724}.session-participant-status.disconnected{background:#fff3cd;color:#856404}.session-active{padding:10px 0}.session-active-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.session-active-title h3{display:flex;align-items:center;gap:10px;margin:0}.session-active-meta{display:flex;align-items:center;gap:12px}.capture-row{display:flex;gap:8px;flex-wrap:wrap}.capture-btn{display:flex;align-items:center;gap:5px;padding:8px 16px;border-radius:4px;font-size:.85rem;font-weight:500;border:2px solid var(--border-color);background:var(--card-bg);cursor:pointer;font-family:inherit;transition:.15s}.capture-btn:hover{border-color:#c9a690}.capture-btn:disabled{opacity:.5;cursor:not-allowed}.capture-btn-confusion{border-color:#e67e22;color:#e67e22}.capture-btn-balance{border-color:var(--color-danger);color:var(--color-danger)}.capture-btn-fun{border-color:#27ae60;color:#27ae60}.capture-btn-note{border-color:#c9a690;color:#c9a690}.capture-btn-voice{border-color:#8e44ad;color:#8e44ad}.capture-btn-emoji{font-size:1rem}.voice-capture{display:flex;flex-direction:column;gap:10px;padding:14px;margin-bottom:20px;border:1px solid var(--border-color);border-radius:8px;background:var(--card-bg)}.voice-capture-status{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:500}.voice-capture-dot{width:10px;height:10px;border-radius:50%;background:var(--color-danger);animation:voice-pulse 1.2s ease-in-out infinite}@keyframes voice-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.voice-capture-transcript{font-size:.9rem;line-height:1.5;min-height:40px;word-wrap:break-word}.voice-capture-interim{color:var(--text-secondary);font-style:italic}.voice-capture-error{padding:8px 0}.voice-capture-editor{width:100%;min-height:80px;resize:vertical}.session-note-form{margin-bottom:20px}.session-note-form input{flex:1}.session-events{margin-bottom:24px}.session-events h4{margin-bottom:12px}.session-events-empty{color:var(--text-secondary);font-style:italic;padding:16px 0}.session-events-card{background:var(--card-hover-bg);border-radius:8px;padding:12px;max-height:300px;overflow-y:auto}.event-item{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid #f0f0f0;font-size:.85rem}.event-item:last-child{border-bottom:none}.event-time{color:var(--text-secondary);font-size:.8rem;white-space:nowrap;flex-shrink:0;font-variant-numeric:tabular-nums}.event-icon{font-size:1rem;flex-shrink:0}.event-text{flex:1}.session-notes-container{margin-top:10px;padding:12px;background:var(--card-hover-bg);border-radius:6px;font-size:.9rem}.session-notes-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.session-notes-heading{margin:0 0 8px;font-size:.85rem;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.session-notes-timeline-list{display:flex;flex-direction:column;gap:6px;border-left:2px solid var(--border-color);padding-left:12px}.session-notes-timeline-item{display:flex;align-items:flex-start;position:relative}.session-notes-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;position:absolute;left:-17px;top:5px}.session-notes-event-content{display:flex;flex-direction:column}.session-notes-event-header{display:flex;align-items:center;gap:6px}.session-notes-timestamp{font-family:monospace;font-size:.8rem;color:var(--text-secondary);min-width:36px}.session-notes-type{font-weight:600;font-size:.8rem;text-transform:capitalize}.session-notes-event-text{color:var(--text-secondary);font-size:.85rem;margin-top:2px}.session-notes-bubble{padding:8px 10px;border-left:3px solid var(--border-color);margin-bottom:8px;display:flex;flex-direction:column;gap:2px}.session-notes-player{font-size:.85rem}.session-notes-issue,.session-notes-quote{font-size:.85rem;color:var(--text-secondary)}.session-notes-playagain{margin-top:12px}.session-notes-bar{display:flex;height:24px;border-radius:4px;overflow:hidden}.session-notes-bar-segment{display:flex;align-items:center;justify-content:center;color:#fff;font-size:.8rem;font-weight:600;min-width:24px}.session-notes-legend{display:flex;gap:12px;margin-top:6px;font-size:.8rem;color:var(--text-secondary)}.session-notes-legend-item{display:flex;align-items:center;gap:4px}.session-notes-legend-dot{width:8px;height:8px;border-radius:50%}.session-active-players{margin-bottom:24px}.session-active-players h4{margin-bottom:12px}.session-controls{display:flex;gap:8px;flex-wrap:wrap;padding-top:16px;border-top:1px solid var(--border-color)}.player-page{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:20px;background:var(--bg-color)}.player-loading,.player-error{text-align:center;padding:40px;color:var(--text-secondary)}.player-error h2{color:var(--header-color);margin-bottom:10px}.player-join-card,.player-ended-card,.player-active-card{background:var(--card-bg-solid);border-radius:12px;padding:30px;width:100%;max-width:420px;border:3px solid var(--card-border);box-shadow:inset 0 0 0 2px var(--card-border-inner),inset 0 0 0 4px var(--card-border)}.player-join-card h2,.player-ended-card h2{margin-bottom:16px;text-align:center}.player-session-info{text-align:center;margin-bottom:20px}.player-game-name{font-size:1.1rem;font-weight:600;color:var(--header-color)}.player-session-name{font-size:.9rem;color:var(--text-secondary)}.player-error-msg{margin-bottom:12px;text-align:center}.player-ended-card{text-align:center}.player-ended-card p{color:var(--text-secondary);margin-bottom:8px}.player-duration{font-size:.9rem;color:var(--text-secondary);margin-bottom:16px}.player-header{text-align:center;margin-bottom:20px}.player-header h2{margin-bottom:4px}.player-header p{color:var(--text-secondary)}.player-timer{text-align:center;font-size:2.5rem;font-weight:300;font-variant-numeric:tabular-nums;letter-spacing:2px;color:var(--text-color);padding:16px 0}.player-timer-subtitle{text-align:center;font-size:.8rem;color:var(--text-secondary);margin-top:-8px;margin-bottom:20px}.player-status{text-align:center;margin-bottom:20px}.player-waiting{text-align:center;padding:30px 0;color:var(--text-secondary)}.player-waiting p{margin-bottom:8px}.player-waiting-heading{font-size:1rem;font-weight:600;color:var(--text-color);margin-bottom:4px}.player-joined-card{background:var(--card-hover-bg);border-radius:6px;padding:16px;margin:16px 0}.player-joined-label{font-size:.85rem;color:var(--text-secondary);margin-bottom:4px}.player-joined-name{font-size:1.1rem;font-weight:600;color:var(--text-color)}.player-waiting-players{background:var(--card-hover-bg);border-radius:6px;padding:14px;text-align:left;margin-bottom:16px}.player-waiting-players-label{font-size:.8rem;color:var(--text-secondary);font-weight:600;margin-bottom:6px}.player-pills{display:flex;gap:6px;flex-wrap:wrap}.player-pill{display:inline-block;padding:4px 10px;border-radius:4px;font-size:.85rem;background:var(--status-neutral-bg);color:var(--text-secondary);border:1px solid var(--border-color)}.player-pill.current{background:var(--card-hover-bg);border-color:var(--card-border);color:var(--text-color)}.player-leave-btn{margin-top:20px}.player-survey{padding:8px 0}.player-survey h3{margin:0 0 4px}.player-survey-subtitle{color:var(--text-secondary);margin:0 0 20px;font-size:.9rem}.player-survey .form-group{margin-bottom:16px}.player-survey .form-group label{display:block;font-weight:600;margin-bottom:6px;font-size:.9rem}.input-readonly{background:var(--input-bg);cursor:default;opacity:.7}.star-rating{display:flex;gap:4px}.star-btn{background:none;border:none;font-size:1.8rem;cursor:pointer;padding:2px;color:var(--text-secondary);transition:transform .1s}.star-btn.active{color:#f5a623}.star-btn:hover{transform:scale(1.15)}.radio-group{display:flex;gap:16px}.player-survey .form-group .radio-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-weight:400}.contextual-question{border-left:3px solid var(--accent, #6c5ce7);padding-left:12px}.form-hint{font-size:.8rem;color:var(--text-secondary);margin-bottom:6px}.player-survey .btn-submit{width:100%}.player-survey-thanks{text-align:center;padding:24px 0}.player-survey-thanks h3{margin-bottom:8px}.player-survey-summary{display:flex;justify-content:center;gap:24px;margin-top:16px}.survey-summary-item{display:flex;flex-direction:column;align-items:center;gap:4px}.survey-summary-label{font-size:.8rem;color:var(--text-secondary)}.survey-summary-value{font-size:1.1rem;font-weight:600}.survey-status-section{margin-top:16px}.survey-response-count{margin:8px 0;font-weight:600}.survey-progress-bar{height:8px;background:var(--status-neutral-bg);border-radius:4px;overflow:hidden}.survey-progress-fill{height:100%;background:var(--accent, #6c5ce7);border-radius:4px;transition:width .3s ease}.survey-results-inline{margin-top:16px}.survey-results-summary{display:flex;gap:16px;flex-wrap:wrap}.survey-stat{display:flex;flex-direction:column;align-items:center;padding:12px 16px;background:var(--card-bg);border-radius:8px;min-width:60px;border:1px solid var(--border-color)}.survey-stat-value{font-size:1.2rem;font-weight:700}.survey-stat-label{font-size:.75rem;color:var(--text-secondary);margin-top:4px}.survey-response-card{border:1px solid var(--border-color);border-radius:8px;margin-top:8px;overflow:hidden}.survey-response-header{display:flex;justify-content:space-between;align-items:center;width:100%;padding:10px 14px;background:var(--card-bg);border:none;cursor:pointer;font-size:.9rem;text-align:left;color:var(--text-color)}.survey-response-header:hover{background:var(--card-hover-bg)}.survey-response-details{padding:12px 14px}.survey-response-details p{margin:6px 0;font-size:.9rem}.turn-tracker{margin-bottom:12px}.turn-tracker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.turn-tracker-round{font-weight:600;font-size:1rem}.turn-tracker-timers{display:flex;gap:12px;align-items:center}.turn-tracker-timer{font-size:.9rem;color:var(--text-secondary);font-variant-numeric:tabular-nums}.turn-tracker-session-time{opacity:.7;font-size:.8rem}.turn-tracker-prompt{font-size:.9rem;color:var(--text-secondary);margin-bottom:8px}.turn-pills{align-items:flex-start}.turn-pill{cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 12px;transition:background .15s,border-color .15s}.turn-pill:hover:not(:disabled):not(.current){background:var(--card-hover-bg);border-color:var(--card-border)}.turn-pill:disabled{cursor:default}.turn-pill.current{position:relative}.turn-dot{width:6px;height:6px;border-radius:50%;background:var(--header-color);position:absolute;top:-3px;right:-3px}.turn-pill-name{font-size:.85rem}.player-time{font-size:.7rem;color:var(--text-secondary)}.turn-pill.add-player{border-style:dashed;font-size:1rem;padding:4px 14px;color:var(--text-secondary)}.add-player-inline{display:flex;gap:4px;align-items:center}.add-player-inline input{width:100px;padding:4px 8px;font-size:.85rem}.round-history{margin-top:10px}.round-history h4{font-size:.85rem;margin-bottom:4px}.round-history-item{display:flex;justify-content:space-between;font-size:.85rem;padding:2px 0;color:var(--text-secondary)}.player-turn-info{text-align:center;margin:8px 0}.player-turn-round{font-size:.9rem;font-weight:600;color:var(--text-secondary)}.player-turn-current{font-size:.85rem;color:var(--text-secondary);margin-top:2px}.player-your-turn{font-size:1.1rem;font-weight:700;color:var(--header-color);margin-top:4px;padding:4px 12px;background:#0000000d;border-radius:6px;display:inline-block}.player-turn-players{margin-top:10px}.player-turn-players .player-pills{justify-content:center}.player-pill.is-me{border-color:var(--header-color)}.player-connection-banner{background:var(--header-color);color:var(--bg-color);text-align:center;padding:6px 12px;font-size:.85rem;border-radius:6px;margin-bottom:8px}@media (max-width: 768px){.capture-row,.session-controls{flex-direction:column}.session-controls .btn{width:100%}}@media (max-width: 480px){.timer-display{font-size:.8rem}.player-timer{font-size:2rem}.player-join-card,.player-ended-card,.player-active-card{padding:20px}}.ideas-board{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:16px;min-height:200px}.ideas-board__column{min-width:0}.ideas-board__column-header{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:.85rem;font-weight:600}.ideas-board__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.ideas-board__column-label{color:var(--text-color)}.ideas-board__column-count{color:var(--text-secondary);font-weight:400;font-size:.8rem}.ideas-board__stack{position:relative}.ideas-board__empty{text-align:center;padding:20px 8px;color:var(--text-secondary);font-size:.8rem;font-style:italic}.ideas-board__card{position:relative;display:flex;flex-direction:column;width:180px;height:250px;padding:14px 14px 14px 18px;background:var(--idea-card-bg);border:3px solid var(--card-border);border-radius:6px;overflow:hidden;cursor:pointer;transition:transform .2s,box-shadow .2s,border-color .2s}.ideas-board__card:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%}.ideas-board__card--draft:before{background:var(--status-draft)}.ideas-board__card--testing:before{background:var(--status-testing)}.ideas-board__card--validated:before{background:var(--status-validated)}.ideas-board__card--rejected:before{background:var(--status-rejected)}.ideas-board__card--deferred:before{background:var(--status-deferred)}.ideas-board__card:nth-child(odd){transform:rotate(.4deg)}.ideas-board__card:nth-child(2n){transform:rotate(-.6deg)}.ideas-board__card:hover{transform:rotate(-.8deg) translateY(-6px);border-color:var(--accent-color);box-shadow:0 8px 20px #00000026;z-index:10}.ideas-board__card-desc{font-size:.85rem;margin-bottom:6px;line-height:1.4;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.ideas-board__card-reason{font-size:.75rem;color:var(--text-secondary);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.ideas-board__card-footer{display:flex;justify-content:space-between;align-items:center;margin-top:auto}.ideas-board__card-footer .badge{font-size:.7rem;border:1px solid var(--border-color);background:transparent}.ideas-board__card-time{font-size:.75rem;color:var(--text-secondary)}.ideas-board__card-delete{position:absolute;top:6px;right:6px;opacity:0;transition:opacity .15s;padding:2px 6px;font-size:.7rem}.ideas-board__card:hover .ideas-board__card-delete{opacity:1}.ideas-board__card--dragging{opacity:.4}.ideas-board__column--drop-target{background:var(--card-hover-bg);border-radius:8px;outline:2px dashed var(--accent-color);outline-offset:-2px}.view-toggle{display:inline-flex;border:1px solid var(--border-color);border-radius:4px;overflow:hidden;margin-left:10px}.view-toggle__btn{padding:5px 12px;font-size:.8rem;border:none;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background .15s,color .15s;font-family:inherit}.view-toggle__btn.active{background:var(--accent-color);color:var(--badge-status-text)}.view-toggle__btn:not(.active):hover{background:var(--card-hover-bg)}@media (max-width: 1100px){.ideas-board{grid-template-columns:repeat(5,200px);overflow-x:auto;padding-bottom:8px}}
