.wod-root{--wod-bg:#151823;--wod-bg-card:#ffffff0a;--wod-bg-input:#1e2130;--wod-bg-hover:#f59e0b1f;--wod-border:#ffffff1a;--wod-border-input:#31374e;--wod-accent:#f59e0b;--wod-accent-dim:#f59e0b26;--wod-text:#d1d5db;--wod-text-heading:#fffffff2;--wod-text-muted:#ffffff80;--wod-green:#94c412;--wod-red:#ef4444;--wod-card-shadow:inset 0 1px 0 #ffffff0d,0 1px 2px #00000059;--wod-radius-xl:12px;--wod-radius-lg:8px;--wod-radius-md:6px;color:var(--wod-text);-webkit-font-smoothing:antialiased;box-sizing:border-box;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:14px;line-height:1.5}.wod-root *,.wod-root :after,.wod-root :before{box-sizing:inherit}.wod-card{background:var(--wod-bg-card);border-radius:var(--wod-radius-xl);box-shadow:var(--wod-card-shadow);border:1px solid var(--wod-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:14px}.wod-loading{min-height:200px;color:var(--wod-text-muted);justify-content:center;align-items:center;font-size:13px;display:flex}.wod-loading-spinner{border:2px solid var(--wod-border);border-top-color:var(--wod-accent);border-radius:50%;width:18px;height:18px;margin-right:8px;animation:.7s linear infinite wod-spin;display:inline-block}@keyframes wod-spin{to{transform:rotate(1turn)}}.wod-readonly-badge{color:var(--wod-accent);text-transform:uppercase;letter-spacing:.06em;-webkit-user-select:none;user-select:none;background:#f59e0b1f;border:1px solid #f59e0b40;border-radius:9999px;padding:3px 8px;font-size:10px;font-weight:600}.wod-edit-btn,.wod-readonly-badge{align-items:center;gap:5px;display:inline-flex}.wod-edit-btn{border-radius:var(--wod-radius-md);background:var(--wod-bg-input);border:1px solid var(--wod-border-input);color:var(--wod-text);cursor:pointer;padding:5px 12px;font-size:12px;font-weight:500;transition:all .15s}.wod-edit-btn:hover{background:var(--wod-bg-hover);color:#fff;border-color:#f59e0b4d}.wod-small{flex-direction:column;align-items:center;gap:6px;display:inline-flex;position:relative}.wod-small__canvas-wrap{display:block;position:relative}.wod-small__canvas-wrap canvas{border-radius:var(--wod-radius-lg);display:block;box-shadow:0 2px 12px #0006}.wod-small__footer{justify-content:center;align-items:center;gap:8px;width:100%;display:flex}.wod-medium{align-items:flex-start;gap:14px;display:flex}.wod-medium__canvas-wrap{flex-direction:column;flex:none;align-items:center;gap:6px;display:flex}.wod-medium__canvas-wrap canvas{border-radius:var(--wod-radius-lg);display:block;box-shadow:0 2px 16px #0006}.wod-medium__side{flex:1;min-width:0;max-height:340px;overflow-y:auto}.wod-medium__footer{justify-content:center;align-items:center;gap:8px;display:flex}.wod-big{align-items:flex-start;gap:18px;min-height:0;display:flex}.wod-big__left{flex-direction:column;flex:0 0 280px;gap:12px;display:flex}.wod-big__center{flex-direction:column;flex:none;align-items:center;gap:8px;display:flex}.wod-big__center canvas{border-radius:var(--wod-radius-xl);display:block;box-shadow:0 4px 24px #0006}.wod-big__right{flex:1;min-width:0;overflow-y:auto}.wod-big__header{justify-content:center;align-items:center;gap:10px;display:flex}.wod-spent-points{text-align:center;width:100%;color:var(--wod-accent);background:var(--wod-accent-dim);border-radius:var(--wod-radius-lg);border:1px solid #f59e0b33;padding:6px;font-size:13px;font-weight:700}.wod-vocation-selector{border-radius:var(--wod-radius-xl);background:var(--wod-bg-card);border:1px solid var(--wod-border);padding:12px}.wod-label{color:var(--wod-text-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px;font-size:10px;font-weight:600;display:block}.wod-vocation-grid{grid-template-columns:repeat(3,1fr);gap:4px;display:grid}.wod-vocation-grid--bottom{grid-template-columns:repeat(2,1fr);margin-top:4px}.wod-vocation-option{cursor:pointer;border-radius:var(--wod-radius-md);color:var(--wod-text);border:1px solid var(--wod-border-input);background:var(--wod-bg-input);text-align:center;-webkit-user-select:none;user-select:none;justify-content:center;align-items:center;padding:6px 4px;font-size:12px;font-weight:500;transition:all .15s;display:flex}.wod-vocation-option:hover{background:var(--wod-bg-hover);color:#fff;border-color:#f59e0b4d}.wod-vocation-option--active{background:var(--wod-accent-dim);color:var(--wod-accent);border-color:#f59e0b4d}.wod-vocation-option input[type=radio]{display:none}.wod-share-code{border-radius:var(--wod-radius-xl);background:var(--wod-bg-card);border:1px solid var(--wod-border);padding:12px}.wod-code-row{margin-bottom:10px}.wod-code-input{background:var(--wod-bg-input);border:1px solid var(--wod-border-input);border-radius:var(--wod-radius-lg);width:100%;min-height:36px;color:var(--wod-text);padding:7px 10px;font-family:SF Mono,Monaco,Cascadia Code,Consolas,monospace;font-size:12px;transition:all .15s}.wod-code-input::placeholder{color:var(--wod-text-muted)}.wod-code-input:focus{border-color:var(--wod-accent);box-shadow:0 0 0 2px var(--wod-accent-dim);outline:none}.wod-code-input--error{border-color:var(--wod-red);box-shadow:0 0 0 2px #ef444426}.wod-code-error{color:var(--wod-red);margin-bottom:7px;font-size:11px;font-weight:500}.wod-code-buttons{grid-template-columns:repeat(3,1fr);gap:5px;margin-bottom:6px;display:grid}.wod-btn{background:var(--wod-bg-input);border:1px solid var(--wod-border-input);border-radius:var(--wod-radius-md);min-height:30px;color:var(--wod-text);cursor:pointer;white-space:nowrap;padding:5px 12px;font-size:11px;font-weight:500;transition:all .15s}.wod-btn:hover{background:var(--wod-bg-hover);color:#fff;border-color:#f59e0b4d}.wod-btn:active{transform:scale(.96)}.wod-btn--danger{color:#fca5a5;border-color:#ef444433}.wod-btn--danger:hover{color:#fca5a5;background:#ef44441f;border-color:#ef444459}.wod-btn--full{width:100%}.wod-point-controls{border-radius:var(--wod-radius-xl);background:var(--wod-bg-card);border:1px solid var(--wod-border);padding:12px}.wod-point-controls--disabled{opacity:.5}.wod-hint{text-align:center;color:var(--wod-text-muted);font-size:12px}.wod-point-bar{background:var(--wod-bg-input);border:1px solid var(--wod-border-input);border-radius:var(--wod-radius-lg);height:26px;margin-bottom:9px;position:relative;overflow:hidden}.wod-point-bar-fill{background:linear-gradient(135deg,#46b21c,#94c412);height:100%;transition:width .15s}.wod-point-bar-text{color:#fff;text-shadow:0 1px 3px #0009;pointer-events:none;font-size:11px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.wod-point-buttons{justify-content:center;gap:5px;display:flex}.wod-btn-ctrl{background:var(--wod-bg-input);border:1px solid var(--wod-border-input);border-radius:var(--wod-radius-md);min-height:30px;color:var(--wod-text);cursor:pointer;-webkit-user-select:none;user-select:none;flex:1;padding:4px 2px;font-size:11px;font-weight:600;transition:all .15s}.wod-btn-ctrl:hover:not(:disabled){background:var(--wod-bg-hover);color:#fff;border-color:#f59e0b4d}.wod-btn-ctrl:active:not(:disabled){transform:scale(.96)}.wod-btn-ctrl:disabled{opacity:.25;cursor:not-allowed}.wod-perk-info{border-radius:var(--wod-radius-xl);background:var(--wod-bg-card);border:1px solid var(--wod-border);word-wrap:break-word;overflow-wrap:break-word;padding:12px;overflow-y:auto}.wod-perk-info--empty{text-align:center;color:var(--wod-text-muted);font-size:12px}.wod-perk-section{margin-bottom:11px}.wod-perk-section:last-child{margin-bottom:0}.wod-perk-section--locked{opacity:.4}.wod-perk-section h4{color:var(--wod-text-heading);border-bottom:1px solid #ffffff0f;align-items:center;gap:7px;margin-bottom:5px;padding-bottom:5px;font-size:12px;font-weight:600;display:flex}.wod-perk-section h4:before{content:"";background:var(--wod-accent);border-radius:50%;flex-shrink:0;width:5px;height:5px;display:inline-block}.wod-perk-section h5{color:var(--wod-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px;font-size:10px;font-weight:600}.wod-perk-value{color:var(--wod-text);font-size:12px;line-height:1.5}.wod-perk-value--locked{opacity:.35}.wod-perk-description{color:var(--wod-text-muted);margin-top:5px;font-size:11px}.wod-perk-tooltip{margin-top:5px;line-height:1.5}.wod-perk-general,.wod-perk-tooltip{color:#fff6;font-size:11px}.wod-perk-general{border-top:1px solid #ffffff0f;margin-top:9px;padding-top:9px}.wod-highlight{color:#fff;font-weight:600}.wod-dimmed{color:#ffffff40}.wod-muted{opacity:.5}.wod-gem-vessel{border-radius:var(--wod-radius-xl);background:var(--wod-bg-card);border:1px solid var(--wod-border);padding:12px}.wod-mod-slot{margin-bottom:9px}.wod-mod-slot:last-child{margin-bottom:0}.wod-mod-slot label{color:var(--wod-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:10px;font-weight:600;display:block}.wod-mod-slot select{background:var(--wod-bg-input);border:1px solid var(--wod-border-input);border-radius:var(--wod-radius-lg);width:100%;min-height:33px;color:var(--wod-text);cursor:pointer;padding:5px 10px;font-size:11px;transition:all .15s}.wod-mod-slot select:focus{border-color:var(--wod-accent);box-shadow:0 0 0 2px var(--wod-accent-dim);outline:none}.wod-mod-slot select:disabled{opacity:.35;cursor:not-allowed}.wod-summary{flex-wrap:wrap;gap:14px;display:flex}.wod-summary--compact{display:block}.wod-summary-col{flex-direction:column;flex:220px;gap:14px;min-width:200px;display:flex}.wod-summary-section{border-radius:var(--wod-radius-xl);background:var(--wod-bg-card);border:1px solid var(--wod-border);padding:12px}.wod-summary-section h3{color:var(--wod-text-heading);letter-spacing:-.01em;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:700;display:flex}.wod-summary-section h3:before{content:"";background:var(--wod-accent);border-radius:50%;flex-shrink:0;width:7px;height:7px;display:inline-block}.wod-summary-table{border-collapse:separate;border-spacing:0;border-radius:var(--wod-radius-lg);border:1px solid #ffffff0f;width:100%;font-size:12px;overflow:hidden}.wod-summary-table tr{transition:background .15s}.wod-row-even{background:#ffffff05}.wod-row-odd{background:#ffffff0a}.wod-summary-table tr:hover{background:#ffffff0f}.wod-summary-table td{border-bottom:1px solid #ffffff0a;padding:7px 10px}.wod-summary-table tr:last-child td{border-bottom:none}.wod-summary-name{color:var(--wod-text)}.wod-summary-value{text-align:right;color:var(--wod-green);white-space:nowrap;font-weight:600}.wod-point-limit{border-radius:var(--wod-radius-xl);background:var(--wod-bg-card);border:1px solid var(--wod-border);padding:12px}.wod-limit-input{background:var(--wod-bg-input);border:1px solid var(--wod-border-input);border-radius:var(--wod-radius-lg);width:100%;min-height:34px;color:var(--wod-text);padding:5px 10px;font-size:12px;transition:all .15s}.wod-limit-input::placeholder{color:var(--wod-text-muted)}.wod-limit-input:focus{border-color:var(--wod-accent);box-shadow:0 0 0 2px var(--wod-accent-dim);outline:none}.wod-limit-counter{text-align:center;color:var(--wod-accent);margin-top:5px;font-size:12px;font-weight:600}.wod-tooltip-content{z-index:9999;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:12px;border-radius:var(--wod-radius-lg)!important;background:#1a1f2e!important;border:1px solid #ffffff1f!important;max-width:280px!important;padding:10px 12px!important;box-shadow:0 8px 24px #00000080!important}.wod-tile-tip{flex-direction:column;gap:6px;display:flex}.wod-tile-tip-progress{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding-bottom:5px;display:flex}.wod-tile-tip-pts{color:#94c412;font-size:13px;font-weight:700}.wod-tile-tip-fill{color:#ffffff80;font-size:11px}.wod-tile-tip-perk{flex-direction:column;gap:1px;display:flex}.wod-tile-tip-label{color:#ffffff73;text-transform:uppercase;letter-spacing:.05em;font-size:10px;font-weight:600}.wod-corner-tip{flex-direction:column;gap:4px;display:flex}.wod-corner-tip-name{color:var(--wod-accent,#f59e0b);font-size:13px;font-weight:700}.wod-corner-tip-level{color:#ffffff80;font-size:11px}.wod-corner-tip-info{color:#fff6;margin-top:4px;font-size:11px;line-height:1.5}.wod-small-tooltip-box{border-radius:var(--wod-radius-lg);z-index:9999;width:250px;color:var(--wod-text);pointer-events:none;background:#1a1f2e;border:1px solid #ffffff1f;padding:10px 12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:12px;position:absolute;top:0;left:104%;box-shadow:0 8px 24px #00000080}