:root{--color-bg: #1a1a2e;--color-surface: #16213e;--color-surface-hover: #1a2744;--color-primary: #e94560;--color-primary-hover: #c73a52;--color-accent: #0f3460;--color-text: #eee;--color-text-muted: #999;--color-border: #2a2a4a;--color-success: #4caf50;--color-warning: #ff9800;--color-danger: #f44336;--radius: 8px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--max-width: 600px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background-color:var(--color-bg);color:var(--color-text);line-height:1.5;min-height:100dvh}#root{min-height:100dvh}.app{max-width:var(--max-width);margin:0 auto;padding:var(--spacing-md)}button{font:inherit;cursor:pointer;border:none;border-radius:var(--radius);padding:var(--spacing-sm) var(--spacing-md);transition:background-color .15s}input,select,textarea{font:inherit;color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-sm) var(--spacing-md);width:100%}input:focus,select:focus,textarea:focus{outline:2px solid var(--color-primary);outline-offset:-1px}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.top-bar{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border)}.top-bar-left{display:flex;align-items:center;gap:var(--spacing-sm)}.top-bar-title{font-size:1.2rem;font-weight:600}.top-bar-back{background:none;color:var(--color-primary);font-size:1.2rem;padding:var(--spacing-xs) var(--spacing-sm)}.top-bar-right{display:flex;gap:var(--spacing-sm)}.top-bar-link{background:var(--color-accent);color:var(--color-text);font-size:.85rem;padding:var(--spacing-xs) var(--spacing-sm)}.top-bar-link:hover{background:var(--color-surface-hover)}.page-container{padding-bottom:var(--spacing-xl)}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#d32f2f}.btn-secondary{background:var(--color-accent);color:var(--color-text)}.btn-secondary:hover{background:var(--color-surface-hover)}.btn-icon{background:none;padding:var(--spacing-xs);font-size:1.2rem;line-height:1;color:var(--color-text-muted)}.btn-icon:hover{color:var(--color-text)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;display:flex;align-items:center;justify-content:center;padding:var(--spacing-md);z-index:100}.modal-content{background:var(--color-surface);border-radius:var(--radius);padding:var(--spacing-lg);width:100%;max-width:400px;max-height:90dvh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.modal-title{font-size:1.1rem;font-weight:600}.modal-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.modal-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;margin-top:var(--spacing-md)}.form-label{display:flex;flex-direction:column;gap:var(--spacing-xs);font-size:.85rem;color:var(--color-text-muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.ship-list-header{margin-bottom:var(--spacing-md)}.ship-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.ship-card{display:flex;align-items:center;justify-content:space-between;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-md);cursor:pointer;transition:background-color .15s}.ship-card:hover{background:var(--color-surface-hover)}.ship-card-info{display:flex;flex-direction:column;gap:2px}.ship-card-name{font-weight:600;font-size:1rem}.ship-card-updated{font-size:.8rem;color:var(--color-text-muted)}.ship-card-delete{color:var(--color-danger);font-size:1.1rem}.ship-card-delete:hover{color:#ff6b6b}.loading-text,.empty-text{text-align:center;color:var(--color-text-muted);padding:var(--spacing-xl) 0}button:disabled{opacity:.5;cursor:not-allowed}.dashboard-section{margin-bottom:var(--spacing-lg)}.section-title{font-size:.9rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-xs)}.combat-stats{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.combat-stat{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-sm);display:flex;flex-direction:column;align-items:center}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm)}.stat-grid-readonly{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xs) var(--spacing-md)}.stat-ro{display:flex;justify-content:space-between;align-items:baseline;padding:var(--spacing-xs) 0}.stat-ro-label{font-size:.85rem;color:var(--color-text-muted)}.stat-ro-value{font-size:1rem;font-weight:600;color:var(--color-text)}.stepper{display:flex;flex-direction:column;gap:var(--spacing-xs)}.stepper-label{font-size:.8rem;color:var(--color-text-muted);text-align:center}.stepper-controls{display:flex;align-items:center;gap:var(--spacing-xs)}.stepper-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--color-accent);color:var(--color-text);font-size:1.2rem;font-weight:700;border-radius:var(--radius);padding:0}.stepper-btn:hover:not(:disabled){background:var(--color-surface-hover)}.stepper-value{min-width:40px;text-align:center;font-weight:600;font-size:1.1rem;cursor:pointer;border-bottom:1px dashed var(--color-text-muted);padding:2px 4px;border-radius:2px}.stepper-value:hover{background:var(--color-surface-hover)}.stepper-input{width:60px;text-align:center;font-weight:600;font-size:1.1rem;padding:2px 4px;height:30px}.dropdown-field{display:flex;flex-direction:column;gap:var(--spacing-xs)}.dropdown-label{font-size:.8rem;color:var(--color-text-muted)}.dropdown-select{height:36px;padding:var(--spacing-xs) var(--spacing-sm)}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-sm);border-bottom:1px solid var(--color-border);padding-bottom:var(--spacing-xs)}.section-header .section-title{border-bottom:none;margin-bottom:0;padding-bottom:0}.btn-sm{font-size:.8rem;padding:var(--spacing-xs) var(--spacing-sm)}.weapons-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.weapon-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--spacing-sm) var(--spacing-md);cursor:pointer;transition:background-color .15s}.weapon-card:hover{background:var(--color-surface-hover)}.weapon-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xs)}.weapon-card-name{font-weight:600;font-size:.95rem}.weapon-card-damage{font-size:.85rem;color:var(--color-primary)}.weapon-card-controls{display:flex;align-items:center;gap:var(--spacing-md)}.weapon-ammo{display:flex;align-items:center;gap:var(--spacing-xs)}.weapon-ammo-value{font-size:.85rem;min-width:40px;text-align:center}.stepper-btn-sm{width:28px;height:28px;font-size:1rem}.weapon-status-select{width:auto;font-size:.8rem;height:28px;padding:0 var(--spacing-sm)}.notes-textarea{width:100%;min-height:80px;resize:vertical}.rules-search{width:100%;padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-sm);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);font-size:1rem}.rules-search::placeholder{color:var(--color-text-muted)}.rules-actions{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.rules-count{font-size:.85rem;color:var(--color-text-muted);margin-left:auto}.rules-sections{display:flex;flex-direction:column;gap:var(--spacing-sm)}.rules-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);overflow:hidden}.rules-summary{padding:var(--spacing-md);cursor:pointer;font-weight:600;font-size:.95rem;list-style:none;display:flex;align-items:center;gap:var(--spacing-sm)}.rules-summary:before{content:"▸";transition:transform .15s;font-size:.8rem}details[open]>.rules-summary:before{transform:rotate(90deg)}.rules-summary::-webkit-details-marker{display:none}.rules-content{padding:0 var(--spacing-md) var(--spacing-md);font-size:.9rem;line-height:1.6}.rules-content h3{font-size:.9rem;margin-top:var(--spacing-md);margin-bottom:var(--spacing-xs);color:var(--color-primary)}.rules-content ul,.rules-content ol{padding-left:var(--spacing-lg);margin:var(--spacing-xs) 0}.rules-content li{margin-bottom:2px}.rules-content .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:var(--spacing-sm) 0}.rules-content table{width:100%;border-collapse:collapse;font-size:.85rem;white-space:nowrap}.rules-content th,.rules-content td{border:1px solid var(--color-border);padding:var(--spacing-xs) var(--spacing-sm);text-align:left}.rules-content th{background:var(--color-accent);font-weight:600}.rules-content blockquote{border-left:3px solid var(--color-primary);padding-left:var(--spacing-md);margin:var(--spacing-sm) 0;color:var(--color-text-muted);font-style:italic}.rules-content strong{color:var(--color-text)}.rules-content p{margin:var(--spacing-xs) 0}mark.search-hl{background:#ffaa0059;color:inherit;border-radius:2px;padding:0 1px}
