:root{--bg-primary:#121316;--bg-secondary:#1a1c20;--bg-tertiary:#23272d;--bg-accent-translucent:#e65c0026;--border-color:#31363f;--text-main:#eef1f6;--text-muted:#9ba4b4;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-header:"Teko", sans-serif;--card-accent:#e65c00;--card-bg:#121315;--card-text:#fff;--font-scale:1;--body-text-color:#ccc}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-primary);color:var(--text-main);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;height:100vh;overflow:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--card-accent)}.app-container{flex-direction:column;height:100vh;display:flex}.app-header{background-color:var(--bg-secondary);border-bottom:2px solid var(--border-color);z-index:10;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex;box-shadow:0 4px 20px #0006}.logo-section h1{font-family:var(--font-header);letter-spacing:1px;color:#fff;text-transform:uppercase;align-items:center;gap:.5rem;font-size:2.2rem;line-height:1;display:flex}.logo-section h1 span{color:var(--card-accent)}.header-actions{align-items:center;gap:.75rem;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s;display:inline-flex}.btn-primary{background-color:var(--card-accent);color:#fff}.btn-primary:hover{background-color:#ff6a00;box-shadow:0 0 12px #e65c0066}.btn-secondary{background-color:var(--bg-tertiary);color:var(--text-main);border-color:var(--border-color)}.btn-secondary:hover{border-color:var(--text-muted);background-color:#2b3038}.btn-danger{color:#fff;background-color:#c92a2a}.btn-danger:hover{background-color:#e03131}.file-input-wrapper{display:inline-block;position:relative;overflow:hidden}.file-input-wrapper input[type=file]{opacity:0;cursor:pointer;font-size:100px;position:absolute;top:0;left:0}.main-layout{flex:1;display:flex;overflow:hidden}.roster-sidebar{background-color:var(--bg-secondary);border-right:2px solid var(--border-color);flex-direction:column;flex-shrink:0;width:340px;display:flex;overflow-y:auto;box-shadow:2px 0 10px #00000026}.card-sidebar{background-color:var(--bg-tertiary);border-right:2px solid var(--border-color);flex-direction:column;flex-shrink:0;width:420px;display:flex;overflow-y:auto;box-shadow:4px 0 20px #0003}.card-sidebar-empty{text-align:center;justify-content:center;align-items:center;height:100%;padding:2rem;display:flex}.empty-state-card{border:1px dashed var(--border-color);background:#ffffff05;border-radius:12px;flex-direction:column;align-items:center;gap:1rem;max-width:320px;padding:2.5rem 1.5rem;display:flex;box-shadow:inset 0 0 20px #0003}.empty-state-icon{font-size:3rem;animation:3s ease-in-out infinite float-slow}@keyframes float-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.empty-state-card h3{color:#fff;font-size:1.1rem;font-family:var(--font-header);text-transform:uppercase;letter-spacing:.5px}.empty-state-card p{color:var(--text-muted);font-size:.8rem;line-height:1.5}.editor-section{border-bottom:1px solid var(--border-color);padding:1.25rem}.editor-section h2{text-transform:uppercase;color:#fff;letter-spacing:.5px;border-left:3px solid var(--card-accent);margin-bottom:1rem;padding-left:.5rem;font-size:1rem}.operatives-picker{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.op-item{background-color:var(--bg-tertiary);border:1px solid var(--border-color);cursor:pointer;border-radius:6px;justify-content:space-between;align-items:center;padding:.6rem .8rem;transition:all .2s;display:flex}.op-item:hover,.op-item.active{border-color:var(--card-accent);background-color:var(--bg-accent-translucent)}.op-name{color:#fff;font-size:.9rem;font-weight:600}.op-actions{gap:.35rem;display:flex}.btn-icon{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:4px;align-items:center;padding:.25rem;display:flex}.btn-icon:hover{color:#fff;background-color:var(--bg-tertiary)}.btn-icon.delete:hover{color:#ff6b6b}.form-group{margin-bottom:1rem}.form-group label{text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;margin-bottom:.35rem;font-size:.75rem;font-weight:600;display:block}.form-control{background-color:var(--bg-tertiary);border:1px solid var(--border-color);color:#fff;width:100%;font-family:var(--font-body);border-radius:6px;padding:.55rem .75rem;font-size:.9rem;transition:border-color .2s}.form-control:focus{border-color:var(--card-accent);outline:none}textarea.form-control{resize:vertical;min-height:70px}.form-row-2{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.form-row-4{grid-template-columns:repeat(4,1fr);gap:.5rem;display:grid}.color-pickers{gap:1rem;display:flex}.color-input-wrapper{align-items:center;gap:.5rem;display:flex}.color-dot{border:1px solid var(--border-color);cursor:pointer;border-radius:6px;width:30px;height:30px;padding:0;position:relative;overflow:hidden}.color-dot input[type=color]{cursor:pointer;border:none;width:40px;height:40px;position:absolute;top:-5px;left:-5px}.sub-items-list{flex-direction:column;gap:.75rem;margin-bottom:1rem;display:flex}.sub-item-editor{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;padding:.75rem;position:relative}.sub-item-header{border-bottom:1px dashed var(--border-color);justify-content:space-between;align-items:center;margin-bottom:.5rem;padding-bottom:.25rem;display:flex}.sub-item-title-badge{background-color:var(--bg-secondary);color:var(--text-muted);text-transform:uppercase;border-radius:4px;padding:.15rem .4rem;font-size:.7rem;font-weight:700}.preview-canvas{background-color:var(--bg-primary);background-image:radial-gradient(var(--border-color) 1px, transparent 1px);background-size:20px 20px;flex-direction:column;flex:1;align-items:center;padding:2rem;display:flex;position:relative;overflow-y:auto}.preview-controls{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-color);z-index:5;background-color:#1a1c20e6;border-radius:30px;align-items:center;gap:1.5rem;margin-bottom:1.5rem;padding:.6rem 1.2rem;display:flex;position:sticky;top:0;box-shadow:0 10px 30px #00000080}.preview-controls span{color:var(--text-muted);font-size:.85rem;font-weight:600}.zoom-slider{width:120px;accent-color:var(--card-accent);cursor:pointer}.cards-sheet{transform-origin:top;flex-direction:column;align-items:center;gap:20px;padding-bottom:4rem;display:flex}.measuring-container{visibility:hidden;pointer-events:none;z-index:-100;background-color:#121315;width:120mm;position:absolute;top:-9999px;left:-9999px}.card-wrapper{background-color:#0000;margin:0;padding:0}.datacard{background-color:var(--card-bg);width:120mm;height:70mm;min-height:70mm;max-height:70mm;color:var(--card-text);box-sizing:border-box;font-family:var(--font-body);border:1.5px solid #222;flex-direction:column;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 25px #0009}.card-wrapper.with-guides{background-color:#ffffff05;border:1px dashed #fff3;padding:2px;display:inline-block}.card-header{background-color:var(--card-bg);border-bottom:2px solid var(--card-accent);box-sizing:border-box;justify-content:space-between;align-items:center;height:14mm;padding:0 2.5mm;display:flex;position:relative;overflow:hidden}.card-header:before{content:"";z-index:1;background:linear-gradient(135deg,#000000b3 40%,#0000 100%);width:100%;height:100%;position:absolute;top:0;left:0}.card-header-art{z-index:1;opacity:1;background-position:30%;background-size:cover;width:40%;height:100%;position:absolute;top:0;left:35%;-webkit-mask-image:linear-gradient(90deg,#0000 0%,#000000b3 55% 60%,#0000 100%);mask-image:linear-gradient(90deg,#0000 0%,#000000b3 55% 60%,#0000 100%)}.card-header-name{font-family:var(--font-header);font-size:calc(1.3rem * var(--font-scale,1));color:#fff;z-index:2;text-transform:uppercase;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.5px;max-width:68mm;font-weight:700;line-height:1;overflow:hidden}.card-header-stats{z-index:2;gap:1.2mm;display:flex}.stat-badge{background-color:color-mix(in srgb, var(--card-bg) 85%, white);border:1px solid #333;border-top:1.5px solid var(--card-accent);flex-direction:column;justify-content:center;align-items:center;width:6.8mm;height:9.5mm;display:flex;position:relative;transform:skew(-12deg);box-shadow:0 2px 4px #00000080}.stat-badge-inner{flex-direction:column;justify-content:center;align-items:center;display:flex}.stat-icon{width:2.8mm;height:2.8mm;fill:var(--card-accent);margin-bottom:.2mm}.stat-value{font-family:var(--font-header);font-size:calc(.85rem * var(--font-scale,1));color:var(--card-accent);line-height:1}.stat-label{font-size:calc(4px * var(--font-scale,1));letter-spacing:.2px;color:color-mix(in srgb, var(--card-accent) 70%, white);text-transform:uppercase;font-weight:800;position:absolute;top:-1.2mm;left:50%;transform:translate(-50%)skew(12deg)}.card-content{box-sizing:border-box;flex-direction:column;flex:1;gap:1.5mm;padding:1.5mm 2.5mm;display:flex;overflow:hidden}.weapons-table{border-collapse:collapse;width:100%;margin-bottom:.5mm}.weapons-table th{font-family:var(--font-header);font-size:calc(7.5pt * var(--font-scale,1));color:var(--card-accent);text-transform:uppercase;text-align:center;letter-spacing:.3px;border-bottom:1px solid var(--card-accent);padding:.2mm .5mm;font-weight:600}.weapons-table td{font-size:calc(6.8pt * var(--font-scale,1));vertical-align:middle;border-bottom:1px solid var(--card-accent);text-align:center;color:var(--body-text-color);padding:.6mm .5mm;line-height:1.1}.weapons-table tr:last-child td{border-bottom:none}.weapons-table td.weapon-name-cell{text-align:left;color:var(--body-text-color);font-weight:600}.weapons-table .weapon-name-wrapper{white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.6mm;max-width:40mm;display:flex;overflow:hidden}.weapon-type-icon{width:2.5mm;height:2.5mm;fill:var(--card-accent);stroke:var(--card-accent);color:var(--card-accent);flex-shrink:0}.weapons-table td.weapon-rules-cell{text-align:left;font-size:calc(6pt * var(--font-scale,1));color:var(--body-text-color);opacity:.8;white-space:normal;max-width:32mm}.card-content-columns{flex:1;grid-template-columns:1fr 1fr;column-gap:3mm;min-height:0;display:grid}.card-column{flex-direction:column;gap:1.5mm;display:flex}.ability-block{break-inside:avoid;flex-direction:column;gap:.2mm;display:flex}.ability-title{font-family:var(--font-header);font-size:calc(8.5pt * var(--font-scale,1));letter-spacing:.3px;color:var(--card-accent);text-transform:uppercase;border-bottom:1px solid var(--card-accent);padding-bottom:.2mm;font-weight:700}.ability-text{font-size:calc(6.2pt * var(--font-scale,1));color:var(--body-text-color);text-align:justify;line-height:1.25}.action-block{break-inside:avoid;flex-direction:column;gap:.2mm;display:flex}.action-header{background-color:var(--card-accent);color:#fff;border-radius:2px;justify-content:space-between;align-items:center;padding:.2mm .8mm;display:flex}.action-title{font-family:var(--font-header);font-size:calc(8.5pt * var(--font-scale,1));letter-spacing:.4px;text-transform:uppercase;font-weight:700}.action-ap{font-family:var(--font-header);font-size:calc(8pt * var(--font-scale,1));background:#000;border-radius:1px;padding:0 .8mm;font-weight:700}.action-text{font-size:calc(6.2pt * var(--font-scale,1));color:var(--body-text-color);text-align:justify;margin-top:.2mm;line-height:1.25}.continuation-banner{color:#fff;font-family:var(--font-header);font-size:calc(7.5pt * var(--font-scale,1));text-transform:uppercase;letter-spacing:.6px;text-align:center;box-sizing:border-box;background-color:#b82c00;flex-shrink:0;justify-content:center;align-items:center;gap:1mm;margin-top:auto;padding:.5mm 0;font-weight:700;display:flex;box-shadow:0 -2px 8px #00000080}.continuation-banner-arrow{animation:1.2s infinite blink}@keyframes blink{0%,to{opacity:.2}50%{opacity:1}}.card-footer{background-color:color-mix(in srgb, var(--card-bg) 80%, black);border-top:1.5px solid var(--card-accent);box-sizing:border-box;flex-shrink:0;justify-content:space-between;align-items:center;height:6mm;padding:0 2.5mm;display:flex}.card-footer-keywords{font-size:calc(5pt * var(--font-scale,1));color:var(--body-text-color);opacity:.7;text-transform:uppercase;letter-spacing:.2px;white-space:nowrap;text-overflow:ellipsis;max-width:104mm;font-weight:800;overflow:hidden}.card-footer-circle{background-color:var(--card-accent);color:#fff;width:4.2mm;height:4.2mm;font-family:var(--font-header);font-size:calc(7.5pt * var(--font-scale,1));border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:700;line-height:1;display:flex;box-shadow:0 1px 3px #00000080}@media print{body{color:#000!important;background-color:#fff!important;height:auto!important;overflow:visible!important}.app-header,.roster-sidebar,.card-sidebar,.preview-controls{display:none!important}.main-layout{display:block!important;overflow:visible!important}.preview-canvas{background:0 0!important;margin:0!important;padding:0!important;display:block!important;overflow:visible!important}.cards-sheet{background:#fff!important;flex-direction:column!important;align-items:center!important;gap:3mm!important;margin:0!important;padding:0!important;display:flex!important;transform:none!important}.card-wrapper{page-break-inside:avoid!important}.datacard{width:120mm!important;height:70mm!important;min-height:70mm!important;max-height:70mm!important;box-shadow:none!important;-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;border:1.5px solid #000!important}.card-wrapper.with-guides{background-color:#0000!important;border:none!important;padding:0!important}.card-wrapper{position:relative}.card-wrapper:before,.card-wrapper:after{content:"";z-index:10;pointer-events:none;border:.3px solid #bbb;position:absolute}}.parsed-bullet-list{margin:.5mm 0 .5mm 3.5mm;padding-left:1mm;list-style-type:square}.parsed-bullet-list li{font-size:calc(6.2pt * var(--font-scale,1));color:var(--body-text-color);text-align:justify;margin-bottom:.3mm;line-height:1.25}.parsed-space{height:1mm}.parsed-line{font-size:calc(5.8pt * var(--font-scale,1));color:var(--body-text-color);text-align:justify;margin-bottom:.3mm;line-height:1.25}.text-icon-triangle{color:#30a14e;vertical-align:middle;margin-right:1.2mm;font-size:1.15em;font-weight:700;line-height:1;display:inline-block}.text-icon-diamond{color:#c62828;vertical-align:middle;margin-right:1.2mm;font-size:1.15em;font-weight:700;line-height:1;display:inline-block}.modal-overlay{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:9999;background-color:#0009;justify-content:center;align-items:center;width:100vw;height:100vh;display:flex;position:fixed;top:0;left:0}.modal-content{background-color:var(--bg-secondary);border:2px solid var(--border-color);border-radius:12px;flex-direction:column;width:550px;max-width:90%;max-height:80vh;display:flex;overflow:hidden;box-shadow:0 15px 50px #000c}.modal-header{border-bottom:2px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem;display:flex;position:relative}.modal-header h3{color:#fff;text-transform:uppercase;letter-spacing:.5px;font-size:1.2rem}.db-status-badge{background-color:var(--bg-tertiary);color:var(--text-muted);border:1px solid var(--border-color);border-radius:20px;align-items:center;gap:.4rem;padding:.25rem .6rem;font-size:.75rem;display:flex}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot.connected{background-color:#2b8a3e;box-shadow:0 0 6px #2b8a3e}.status-dot.fallback{background-color:#e8590c;box-shadow:0 0 6px #e8590c}.modal-close-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:.25rem;font-size:1.1rem;line-height:1}.modal-close-btn:hover{color:#fff}.create-project-form{border-bottom:1px dashed var(--border-color);background-color:#ffffff03;gap:.75rem;padding:1rem 1.25rem;display:flex}.project-list-container{flex:1;min-height:200px;padding:1rem 1.25rem;overflow-y:auto}.empty-projects-msg{text-align:center;color:var(--text-muted);padding:3rem 0;font-size:.9rem}.project-list{flex-direction:column;gap:.6rem;display:flex}.project-item{background-color:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:all .2s;display:flex}.project-item:hover{border-color:var(--text-muted)}.project-item.active{border-color:var(--card-accent);background-color:var(--bg-accent-translucent)}.project-info{flex-direction:column;flex:1;gap:.2rem;display:flex}.project-title-text{color:#fff;font-size:.95rem;font-weight:600}.project-time-text{color:var(--text-muted);font-size:.7rem}.project-actions{align-items:center;gap:.5rem;display:flex}.active-badge{text-transform:uppercase;color:var(--card-accent);border:1px solid var(--card-accent);background-color:#e65c0033;border-radius:4px;padding:.2rem .5rem;font-size:.7rem;font-weight:700}.btn-sm{border-radius:4px;padding:.25rem .6rem;font-size:.75rem}.inline-rename-wrapper{align-items:center;gap:.5rem;width:100%;display:flex}.inline-rename-input{flex:1;padding:.25rem .5rem;font-size:.85rem}.confirm-delete-actions{gap:.35rem;display:flex}.sync-status{background-color:var(--bg-tertiary);border:1px solid var(--border-color);-webkit-user-select:none;user-select:none;border-radius:20px;padding:.35rem .75rem;font-size:.8rem;font-weight:600;line-height:1}.sync-status.saved{color:#3fb950}.sync-status.modified{color:#d29922}.sync-status.saving{color:#58a6ff}.sync-status.error{color:#f85149}
