/* KMY component styles. Classes are prefixed kmy-. Tokens only — no hard-coded colors. */
.kmy-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);font-family:var(--font-core);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);border:var(--border-hairline) solid transparent;border-radius:var(--radius-pill);cursor:pointer;transition:background var(--dur-fast) var(--ease-calm),color var(--dur-fast) var(--ease-calm),border-color var(--dur-fast) var(--ease-calm),transform var(--dur-fast) var(--ease-calm),box-shadow var(--dur-fast) var(--ease-calm);text-decoration:none;white-space:nowrap}
.kmy-btn--sm{height:32px;padding:0 var(--space-5);font-size:var(--text-caption)}
.kmy-btn--md{height:40px;padding:0 var(--space-6);font-size:var(--text-body-sm)}
.kmy-btn--lg{height:48px;padding:0 var(--space-7);font-size:var(--text-body-md)}
.kmy-btn--primary{background:var(--action-primary);color:var(--text-on-accent)}
.kmy-btn--primary:hover{background:var(--action-primary-hover)}
.kmy-btn--secondary{background:transparent;color:var(--text-heading);border-color:var(--line-strong)}
.kmy-btn--secondary:hover{background:var(--action-quiet-hover);border-color:var(--line-accent)}
.kmy-btn--ghost{background:transparent;color:var(--text-body)}
.kmy-btn--ghost:hover{background:var(--action-quiet-hover);color:var(--text-heading)}
.kmy-btn--danger{background:transparent;color:var(--status-danger);border-color:var(--clay-800)}
.kmy-btn--danger:hover{background:var(--status-danger-bg)}
.kmy-btn:active:not(:disabled){transform:scale(var(--press-scale))}
.kmy-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.kmy-btn:disabled{opacity:.4;cursor:not-allowed}
.kmy-btn--block{width:100%}

.kmy-iconbtn{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:var(--border-hairline) solid transparent;border-radius:var(--radius-md);color:var(--text-muted);cursor:pointer;transition:background var(--dur-fast) var(--ease-calm),color var(--dur-fast) var(--ease-calm),border-color var(--dur-fast) var(--ease-calm)}
.kmy-iconbtn--sm{width:28px;height:28px}.kmy-iconbtn--md{width:36px;height:36px}.kmy-iconbtn--lg{width:44px;height:44px}
.kmy-iconbtn:hover{background:var(--action-quiet-hover);color:var(--text-heading)}
.kmy-iconbtn--outlined{border-color:var(--line-soft)}
.kmy-iconbtn--active{background:var(--surface-accent-soft);color:var(--text-accent)}
.kmy-iconbtn:focus-visible{outline:none;box-shadow:var(--shadow-focus)}
.kmy-iconbtn:disabled{opacity:.4;cursor:not-allowed}

.kmy-icon{display:inline-block;background-color:currentColor;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;flex:none}

.kmy-card{background:var(--surface-card);border:var(--border-hairline) solid var(--line-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-2);transition:border-color var(--dur-base) var(--ease-calm),transform var(--dur-base) var(--ease-calm),box-shadow var(--dur-base) var(--ease-calm)}
.kmy-card--flat{box-shadow:none;background:var(--surface-raised)}
.kmy-card--outline{background:transparent;box-shadow:none;border-color:var(--line-soft)}
.kmy-card--pad-sm{padding:var(--space-5)}.kmy-card--pad-md{padding:var(--space-6)}.kmy-card--pad-lg{padding:var(--space-7)}
.kmy-card--interactive{cursor:pointer}
.kmy-card--interactive:hover{border-color:var(--line-accent);transform:translateY(var(--lift-hover));box-shadow:var(--shadow-3)}

.kmy-badge{display:inline-flex;align-items:center;gap:var(--space-2);height:22px;padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase}
.kmy-badge--neutral{background:var(--surface-inset);color:var(--text-muted)}
.kmy-badge--success{background:var(--status-success-bg);color:var(--status-success)}
.kmy-badge--info{background:var(--status-info-bg);color:var(--status-info)}
.kmy-badge--warning{background:var(--status-warning-bg);color:var(--status-warning)}
.kmy-badge--danger{background:var(--status-danger-bg);color:var(--status-danger)}
.kmy-badge--dot::before{content:'';width:5px;height:5px;border-radius:var(--radius-pill);background:currentColor}

.kmy-tag{display:inline-flex;align-items:center;gap:var(--space-3);height:28px;padding:0 var(--space-4);border-radius:var(--radius-pill);border:var(--border-hairline) solid var(--line-soft);background:transparent;color:var(--text-body);font-size:var(--text-caption);letter-spacing:var(--tracking-body);transition:border-color var(--dur-fast) var(--ease-calm),color var(--dur-fast) var(--ease-calm),background var(--dur-fast) var(--ease-calm)}
.kmy-tag--selected{background:var(--surface-accent-soft);border-color:var(--line-accent);color:var(--text-accent)}
.kmy-tag--clickable{cursor:pointer}
.kmy-tag--clickable:hover{color:var(--text-heading);border-color:var(--line-strong)}
.kmy-tag__x{display:inline-flex;border:0;background:none;color:inherit;opacity:.6;cursor:pointer;padding:0;font-size:12px;line-height:1}
.kmy-tag__x:hover{opacity:1}

.kmy-field{display:flex;flex-direction:column;gap:var(--space-3)}
.kmy-label{font-size:var(--text-caption);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted)}
.kmy-hint{font-size:var(--text-caption);color:var(--text-faint)}
.kmy-hint--error{color:var(--status-danger)}
.kmy-input,.kmy-textarea,.kmy-select{width:100%;box-sizing:border-box;background:var(--surface-inset);border:var(--border-hairline) solid var(--line-soft);border-radius:var(--radius-md);color:var(--text-heading);font-family:var(--font-core);font-size:var(--text-body-sm);transition:border-color var(--dur-fast) var(--ease-calm),box-shadow var(--dur-fast) var(--ease-calm),background var(--dur-fast) var(--ease-calm)}
.kmy-input,.kmy-select{height:40px;padding:0 var(--space-5)}
.kmy-textarea{padding:var(--space-4) var(--space-5);line-height:var(--leading-normal);resize:vertical}
.kmy-input::placeholder,.kmy-textarea::placeholder{color:var(--text-faint)}
.kmy-input:hover,.kmy-textarea:hover,.kmy-select:hover{border-color:var(--line-strong)}
.kmy-input:focus,.kmy-textarea:focus,.kmy-select:focus{outline:none;border-color:var(--line-accent);box-shadow:var(--shadow-focus);background:var(--surface-raised)}
.kmy-input[aria-invalid='true'],.kmy-textarea[aria-invalid='true']{border-color:var(--status-danger)}
.kmy-input:disabled,.kmy-textarea:disabled,.kmy-select:disabled{opacity:.45;cursor:not-allowed}
.kmy-select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 18px) 18px,calc(100% - 13px) 18px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:var(--space-8)}
.kmy-input-wrap{position:relative;display:flex;align-items:center}
.kmy-input-wrap .kmy-icon{position:absolute;left:var(--space-5);color:var(--text-faint);pointer-events:none}
.kmy-input--with-icon{padding-left:var(--space-9)}

.kmy-check{display:inline-flex;align-items:flex-start;gap:var(--space-4);cursor:pointer;font-size:var(--text-body-sm);color:var(--text-body)}
.kmy-check input{position:absolute;opacity:0;width:0;height:0}
.kmy-check__box{width:18px;height:18px;flex:none;margin-top:1px;border:var(--border-hairline) solid var(--line-strong);border-radius:var(--radius-xs);background:var(--surface-inset);display:flex;align-items:center;justify-content:center;transition:all var(--dur-fast) var(--ease-calm)}
.kmy-check__box--radio{border-radius:var(--radius-pill)}
.kmy-check input:checked+.kmy-check__box{background:var(--action-primary);border-color:var(--action-primary)}
.kmy-check input:focus-visible+.kmy-check__box{box-shadow:var(--shadow-focus)}
.kmy-check__mark{width:10px;height:10px;color:var(--text-on-accent);opacity:0;transition:opacity var(--dur-fast) var(--ease-calm)}
.kmy-check input:checked+.kmy-check__box .kmy-check__mark{opacity:1}
.kmy-check__dot{width:7px;height:7px;border-radius:var(--radius-pill);background:var(--text-on-accent);transform:scale(0);transition:transform var(--dur-fast) var(--ease-calm)}
.kmy-check input:checked+.kmy-check__box .kmy-check__dot{transform:scale(1)}
.kmy-check--disabled{opacity:.45;cursor:not-allowed}

.kmy-switch{display:inline-flex;align-items:center;gap:var(--space-4);cursor:pointer;font-size:var(--text-body-sm);color:var(--text-body)}
.kmy-switch input{position:absolute;opacity:0;width:0;height:0}
.kmy-switch__track{width:40px;height:22px;flex:none;border-radius:var(--radius-pill);background:var(--surface-inset);border:var(--border-hairline) solid var(--line-soft);padding:2px;transition:background var(--dur-base) var(--ease-calm),border-color var(--dur-base) var(--ease-calm)}
.kmy-switch__knob{width:16px;height:16px;border-radius:var(--radius-pill);background:var(--fog-500);transition:transform var(--dur-base) var(--ease-calm),background var(--dur-base) var(--ease-calm)}
.kmy-switch input:checked+.kmy-switch__track{background:var(--sage-800);border-color:var(--line-accent)}
.kmy-switch input:checked+.kmy-switch__track .kmy-switch__knob{transform:translateX(18px);background:var(--action-primary)}
.kmy-switch input:focus-visible+.kmy-switch__track{box-shadow:var(--shadow-focus)}
.kmy-switch--disabled{opacity:.45;cursor:not-allowed}

.kmy-tabs{display:flex;gap:var(--space-2);border-bottom:var(--border-hairline) solid var(--line-hairline)}
.kmy-tab{position:relative;background:none;border:0;padding:var(--space-4) var(--space-5);font-family:var(--font-core);font-size:var(--text-body-sm);font-weight:var(--weight-medium);color:var(--text-muted);cursor:pointer;transition:color var(--dur-fast) var(--ease-calm)}
.kmy-tab:hover{color:var(--text-body)}
.kmy-tab--active{color:var(--text-heading)}
.kmy-tab--active::after{content:'';position:absolute;left:var(--space-5);right:var(--space-5);bottom:-1px;height:var(--border-emphasis);background:var(--action-primary);border-radius:var(--radius-pill)}
.kmy-tabs--pill{border:0;background:var(--surface-raised);padding:var(--space-2);border-radius:var(--radius-pill);gap:0;display:inline-flex}
.kmy-tabs--pill .kmy-tab{padding:var(--space-3) var(--space-5);border-radius:var(--radius-pill)}
.kmy-tabs--pill .kmy-tab--active{background:var(--surface-inset)}
.kmy-tabs--pill .kmy-tab--active::after{display:none}

.kmy-dialog-scrim{position:fixed;inset:0;background:var(--surface-overlay);backdrop-filter:var(--blur-veil);display:flex;align-items:center;justify-content:center;padding:var(--space-6);z-index:60;animation:kmy-fade var(--dur-base) var(--ease-calm)}
.kmy-dialog{width:100%;max-width:460px;background:var(--surface-card);border:var(--border-hairline) solid var(--line-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-4),var(--shadow-inset-top);padding:var(--space-7);animation:kmy-rise var(--dur-slow) var(--ease-calm)}
.kmy-dialog__title{margin:0 0 var(--space-3);font-size:var(--text-h3);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-heading);color:var(--text-heading)}
.kmy-dialog__body{margin:0;font-size:var(--text-body-sm);color:var(--text-body)}
.kmy-dialog__footer{display:flex;justify-content:flex-end;gap:var(--space-4);margin-top:var(--space-7)}
@keyframes kmy-fade{from{opacity:0}to{opacity:1}}
@keyframes kmy-rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

.kmy-toast{display:flex;align-items:flex-start;gap:var(--space-4);min-width:280px;max-width:420px;padding:var(--space-5);background:var(--surface-raised);border:var(--border-hairline) solid var(--line-soft);border-left:var(--border-emphasis) solid var(--line-accent);border-radius:var(--radius-md);box-shadow:var(--shadow-3);animation:kmy-rise var(--dur-slow) var(--ease-calm)}
.kmy-toast--success{border-left-color:var(--status-success)}
.kmy-toast--info{border-left-color:var(--status-info)}
.kmy-toast--warning{border-left-color:var(--status-warning)}
.kmy-toast--danger{border-left-color:var(--status-danger)}
.kmy-toast__title{font-size:var(--text-body-sm);font-weight:var(--weight-semibold);color:var(--text-heading)}
.kmy-toast__msg{font-size:var(--text-caption);color:var(--text-muted);margin-top:var(--space-2)}

.kmy-tooltip-wrap{position:relative;display:inline-flex}
.kmy-tooltip{position:absolute;z-index:70;padding:var(--space-3) var(--space-4);background:var(--fog-050);color:var(--ink-900);font-size:var(--text-micro);font-weight:var(--weight-medium);letter-spacing:var(--tracking-body);border-radius:var(--radius-sm);box-shadow:var(--shadow-3);white-space:nowrap;pointer-events:none;animation:kmy-fade var(--dur-fast) var(--ease-calm)}
.kmy-tooltip--top{bottom:calc(100% + 8px);left:50%;transform:translateX(-50%)}
.kmy-tooltip--bottom{top:calc(100% + 8px);left:50%;transform:translateX(-50%)}
.kmy-tooltip--left{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}
.kmy-tooltip--right{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}

.kmy-eyebrow{font-size:var(--text-micro);font-weight:var(--weight-semibold);letter-spacing:var(--tracking-eyebrow);text-transform:uppercase;color:var(--text-muted)}
