.prop-section{padding:var(--sp-2) var(--sp-3)}.prop-heading{font-family:var(--font-mono);font-size:.6875rem;font-weight:var(--fw-medium);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--fg-3);margin:var(--sp-3) 0 var(--sp-1);line-height:1}.prop-heading:first-child{margin-top:0}.prop-name{font-family:var(--font-sans);font-size:var(--fs-13);color:var(--fg-1);margin:0 0 var(--sp-1);font-weight:var(--fw-medium)}.prop-row{justify-content:space-between;align-items:center;gap:var(--sp-2);padding:3px 0;display:flex}.prop-label{font-family:var(--font-mono);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--fg-3);min-width:16px;font-size:.6875rem;font-weight:var(--fw-medium)}.prop-input,.prop-select,.prop-textarea{background-color:var(--bg-3);color:var(--fg-1);border:1px solid var(--border-1);border-radius:var(--r-sm);padding:var(--sp-1) var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-12);font-variant-numeric:tabular-nums;transition:border-color var(--dur-2) var(--ease-out), background-color var(--dur-2) var(--ease-out)}.prop-input{width:80px}.prop-select{width:140px}.prop-textarea{width:100%;font-family:var(--font-sans);padding:var(--sp-2);font-size:var(--fs-13);resize:vertical}.prop-input:hover:not(:focus),.prop-select:hover:not(:focus),.prop-textarea:hover:not(:focus){border-color:var(--border-2)}.prop-input:focus,.prop-select:focus,.prop-textarea:focus{border-color:var(--accent);background-color:var(--bg-2);outline:none}.prop-input--name{width:100%;margin-bottom:var(--sp-1);font-family:var(--font-sans)}.prop-triplet{gap:var(--sp-2);padding:var(--sp-1) 0;grid-template-columns:repeat(3,1fr);display:grid}.prop-triplet-cell{align-items:center;gap:var(--sp-1);grid-template-columns:16px 1fr;display:grid}.prop-triplet .prop-input{width:100%;min-width:0}.prop-axis-label{font-family:var(--font-mono);font-size:10px;font-weight:var(--fw-bold);letter-spacing:var(--ls-wide);text-align:center}.prop-axis-label--x{color:var(--axis-x)}.prop-axis-label--y{color:var(--axis-y)}.prop-axis-label--z{color:var(--axis-z)}.prop-size-readout{font-family:var(--font-mono);font-size:var(--fs-12);color:var(--fg-2);font-variant-numeric:tabular-nums;padding:var(--sp-1) var(--sp-2);background-color:color-mix(in oklab, var(--bg-3) 60%, transparent);border-radius:var(--r-sm);text-align:right}.color-swatches{gap:var(--sp-1);padding:var(--sp-1) 0;flex-wrap:wrap;display:flex}.color-swatch{border-radius:var(--r-sm);cursor:pointer;width:22px;height:22px;transition:border-color var(--dur-2) var(--ease-out), transform var(--dur-1) var(--ease-out);border:2px solid transparent}.color-swatch:hover{border-color:var(--border-3);transform:translateY(-1px)}.color-swatch--active{border-color:var(--accent)}.text-style-btns{gap:2px;display:flex}.text-style-btns .button{min-width:28px;padding:var(--sp-1) var(--sp-2);font-size:var(--fs-12)}.prop-group-header{align-items:center;gap:var(--sp-2);padding:var(--sp-1) 0;display:flex}.prop-group-icon{font-size:var(--fs-18);color:var(--fg-2)}.prop-group-name{font-family:var(--font-sans);font-size:var(--fs-14);font-weight:var(--fw-semibold);color:var(--fg-1)}.prop-group-count{font-family:var(--font-mono);letter-spacing:var(--ls-wide);color:var(--fg-3);margin:2px 0 var(--sp-2);font-size:.6875rem}.prop-group-actions{gap:var(--sp-2);display:flex}.prop-group-action{padding:var(--sp-1) var(--sp-3);font-family:var(--font-sans);font-size:var(--fs-12);font-weight:var(--fw-medium);background-color:var(--bg-3);color:var(--fg-1);border:1px solid var(--border-1);border-radius:var(--r-sm);cursor:pointer;transition:background-color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out), color var(--dur-2) var(--ease-out)}.prop-group-action:hover{background-color:var(--bg-4);border-color:var(--border-2)}.prop-group-action--danger:hover{background-color:color-mix(in oklab, var(--danger) 15%, transparent);border-color:color-mix(in oklab, var(--danger) 50%, transparent);color:var(--danger)}.mat-tabs{gap:var(--sp-1);margin-bottom:var(--sp-2);flex-wrap:wrap;display:flex}.mat-tab{font-family:var(--font-mono);letter-spacing:var(--ls-widest);text-transform:uppercase;padding:var(--sp-1) var(--sp-2);color:var(--fg-3);border-radius:var(--r-sm);cursor:pointer;transition:color var(--dur-2) var(--ease-out), background-color var(--dur-2) var(--ease-out), border-color var(--dur-2) var(--ease-out);background-color:transparent;border:1px solid transparent;font-size:.6875rem}.mat-tab:hover{color:var(--fg-1);background-color:var(--bg-3)}.mat-tab--active{color:var(--fg-1);background-color:var(--bg-3);border-color:var(--accent)}.mat-search-row{gap:var(--sp-1)}.mat-search{flex:auto;width:auto}.mat-search-clear{font-family:var(--font-mono);font-size:var(--fs-13);border:1px solid var(--border-1);border-radius:var(--r-sm);background-color:var(--bg-3);width:22px;height:22px;color:var(--fg-2);cursor:pointer;line-height:1}.mat-search-clear:hover{color:var(--fg-1);border-color:var(--border-2)}.mat-grid{gap:var(--sp-1);margin-top:var(--sp-2);grid-template-columns:repeat(auto-fill,minmax(78px,1fr));display:grid}.mat-card{border:1px solid var(--border-1);border-radius:var(--r-sm);cursor:pointer;transition:border-color var(--dur-2) var(--ease-out), background-color var(--dur-2) var(--ease-out);background-color:transparent;flex-direction:column;align-items:stretch;padding:2px;display:flex}.mat-card:hover{border-color:var(--border-2);background-color:var(--bg-3)}.mat-card--active{border-color:var(--accent);background-color:color-mix(in oklab, var(--accent) 10%, var(--bg-3))}.mat-card-swatch{aspect-ratio:1;background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid rgba(0,0,0,.15);border-radius:2px;width:100%}.mat-card-name{font-family:var(--font-sans);color:var(--fg-2);text-align:center;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:.6875rem;overflow:hidden}.mat-clear,.mat-reset{margin-top:var(--sp-2);padding:var(--sp-1) var(--sp-2);font-family:var(--font-mono);letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--fg-2);background-color:var(--bg-3);border:1px solid var(--border-1);border-radius:var(--r-sm);cursor:pointer;font-size:.6875rem}.mat-clear:hover,.mat-reset:hover{color:var(--fg-1);border-color:var(--border-2)}.mat-slider{flex:auto;width:auto;padding:0}.mat-slider-val{font-family:var(--font-mono);color:var(--fg-3);font-variant-numeric:tabular-nums;text-align:right;min-width:36px;font-size:.6875rem}