/* INOOWA Design System v1: opt-in UI-kit primitives.
   Import AFTER design-system/tokens/tokens.css.
   Scoped to .inoowa-ds so current review screens remain untouched. */
.inoowa-ds{
 color:var(--inoowa-color-semantic-text-primary);
 background:var(--inoowa-color-semantic-canvas);
 font-family:var(--inoowa-font-family);
 font-size:var(--inoowa-font-size-body);
 line-height:var(--inoowa-font-leading-body);
}
.inoowa-ds *, .inoowa-ds *::before, .inoowa-ds *::after{box-sizing:border-box}
.inoowa-ds button,.inoowa-ds input,.inoowa-ds select,.inoowa-ds textarea{font:inherit}
.inoowa-ds button{cursor:pointer}
.inoowa-ds :is(button,input,select,textarea,a):focus-visible{
 outline:3px solid var(--inoowa-color-semantic-focus);
 outline-offset:3px
}
.inoowa-ds .ds-stack{display:flex;flex-direction:column;gap:var(--inoowa-space-2)}
.inoowa-ds .ds-inline{display:flex;align-items:center;gap:var(--inoowa-space-2);flex-wrap:wrap}
.inoowa-ds .ds-panel{
 padding:var(--inoowa-space-3);border-radius:var(--inoowa-radius-lg);
 border:1px solid var(--inoowa-color-semantic-border-default);
 background:var(--inoowa-color-semantic-surface);
 box-shadow:0 12px 32px #030A245c;
}
.inoowa-ds .ds-panel--raised{
 background:var(--inoowa-color-semantic-surface-raised);
 box-shadow:inset 0 1px #ffffff28,0 14px 40px #020C346b;
}
.inoowa-ds .ds-btn{
 position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--inoowa-space-1);
 min-height:var(--inoowa-size-button-height);
 padding:0 var(--inoowa-space-3);
 border:1px solid transparent;border-radius:var(--inoowa-radius-md);
 text-align:center;font-weight:var(--inoowa-font-weight-bold);
 font-size:var(--inoowa-font-size-body);line-height:var(--inoowa-font-leading-body);
 transition:background var(--inoowa-motion-duration-base) var(--inoowa-motion-easing-standard),
 transform var(--inoowa-motion-duration-fast) var(--inoowa-motion-easing-standard),
 box-shadow var(--inoowa-motion-duration-fast) var(--inoowa-motion-easing-standard);
}
.inoowa-ds .ds-btn--primary{
 background:var(--inoowa-gradient-primary);
 color:var(--inoowa-color-semantic-text-on-primary);
 border-radius:var(--inoowa-radius-button-primary);
 box-shadow:0 15px 37px #070f3a7a,0 0 23px #62c7ff45;
}
.inoowa-ds .ds-btn--primary:hover:not(:disabled):not([aria-disabled="true"]){
 filter:brightness(1.09);
 transform:translateY(-2px);
}
.inoowa-ds .ds-btn--primary:active:not(:disabled){transform:translateY(2px);box-shadow:0 5px 15px #070f3a7a}
/* Signature CTA: protected existing 06B Handoff visual, not an all-screen primary. */
.inoowa-ds .ds-btn--signature{
 background:var(--inoowa-gradient-signature);
 color:#fff;border-color:#ffffff46;min-height:64px;
 text-shadow:0 1px 4px #24316a4e;box-shadow:0 12px 32px #0a11447a;
}
.inoowa-ds .ds-btn--signature:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px)}
.inoowa-ds .ds-btn--signature:active:not(:disabled){transform:translateY(2px)}
.inoowa-ds .ds-btn--secondary{
 color:var(--inoowa-color-semantic-text-primary);
 border-color:var(--inoowa-color-semantic-border-default);
 background:var(--inoowa-color-semantic-action-secondary);
 box-shadow:inset 0 1px #ffffff27,0 4px 0 #091737;
}
.inoowa-ds .ds-btn--secondary:hover:not(:disabled){background:var(--inoowa-color-primitive-navy600)}
.inoowa-ds .ds-btn--tertiary{color:var(--inoowa-color-primitive-cyan300);background:transparent}
.inoowa-ds .ds-btn--tertiary:hover:not(:disabled){background:#71e5f11a}
.inoowa-ds .ds-btn--danger{border-color:var(--inoowa-color-semantic-status-danger);color:#FFE9EC;background:#57283D}
.inoowa-ds .ds-btn--hero{min-height:var(--inoowa-size-button-height-hero);font-size:20px}
.inoowa-ds .ds-btn--small{min-height:48px;font-size:14px;padding:0 16px}
.inoowa-ds .ds-btn:disabled,.inoowa-ds .ds-btn[aria-disabled="true"]{cursor:not-allowed;opacity:var(--inoowa-opacity-disabled);box-shadow:none;transform:none}
.inoowa-ds .ds-btn.is-loading{pointer-events:none}
.inoowa-ds .ds-btn.is-loading::before{
 content:'';width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;
 border-radius:50%;animation:ds-spin 900ms linear infinite
}
.inoowa-ds .ds-btn.is-success{background:var(--inoowa-color-semantic-status-success);color:var(--inoowa-color-semantic-text-inverse);box-shadow:none}
.inoowa-ds .ds-field{display:flex;flex-direction:column;gap:var(--inoowa-space-1);max-width:520px}
.inoowa-ds .ds-field label{font-size:var(--inoowa-font-size-label);font-weight:var(--inoowa-font-weight-semibold)}
.inoowa-ds .ds-field :is(input,select,textarea){
 display:block;width:100%;min-height:var(--inoowa-size-field-height);
 padding:12px 16px;color:var(--inoowa-color-semantic-text-primary);
 background:var(--inoowa-color-semantic-surface-raised);
 border:1.5px solid var(--inoowa-color-semantic-border-default);
 border-radius:var(--inoowa-radius-md);
}
.inoowa-ds .ds-field :is(input,select,textarea)::placeholder{color:var(--inoowa-color-semantic-text-muted)}
.inoowa-ds .ds-field :is(input,select,textarea):disabled{opacity:.45;cursor:not-allowed}
.inoowa-ds .ds-field[data-invalid="true"] :is(input,select,textarea),
.inoowa-ds .ds-field :is(input,select,textarea)[aria-invalid="true"]{
 border-color:var(--inoowa-color-semantic-status-danger);box-shadow:0 0 0 1px #ffadb74d
}
.inoowa-ds .ds-field__help{font-size:var(--inoowa-font-size-caption);line-height:var(--inoowa-font-leading-caption);color:var(--inoowa-color-semantic-text-muted)}
.inoowa-ds .ds-field__error{font-size:var(--inoowa-font-size-label);color:var(--inoowa-color-semantic-status-danger)}
.inoowa-ds .ds-check{display:inline-flex;align-items:center;gap:12px;min-height:48px;font-size:var(--inoowa-font-size-body);cursor:pointer}
.inoowa-ds .ds-check input{width:24px;height:24px;accent-color:var(--inoowa-color-semantic-action-primary);flex:none}
.inoowa-ds .ds-chip{
 display:inline-flex;min-height:40px;align-items:center;gap:8px;padding:6px 14px;
 border:1px solid var(--inoowa-color-semantic-border-default);border-radius:var(--inoowa-radius-pill);
 background:var(--inoowa-color-semantic-surface-raised);color:var(--inoowa-color-semantic-text-secondary);
 font-size:var(--inoowa-font-size-label);font-weight:var(--inoowa-font-weight-semibold)
}
.inoowa-ds .ds-chip[aria-pressed="true"]{
 border-color:var(--inoowa-color-semantic-action-primary);
 background:var(--inoowa-color-semantic-surface-interactive);
 color:var(--inoowa-color-semantic-text-primary)
}
.inoowa-ds .ds-chip:disabled{opacity:var(--inoowa-opacity-disabled);cursor:not-allowed}
.inoowa-ds .ds-banner{padding:16px 20px;border-radius:var(--inoowa-radius-md);border-left:4px solid var(--inoowa-color-semantic-focus);background:var(--inoowa-color-semantic-surface-raised)}
.inoowa-ds .ds-banner--danger{border-color:var(--inoowa-color-semantic-status-danger)}
.inoowa-ds .ds-banner--success{border-color:var(--inoowa-color-semantic-status-success)}
.inoowa-ds .ds-empty{
 text-align:center;display:grid;justify-items:center;gap:16px;padding:40px 32px;
 border:1px dashed var(--inoowa-color-semantic-border-default);border-radius:var(--inoowa-radius-lg);
 background:var(--inoowa-color-semantic-surface-raised)
}
.inoowa-ds .ds-empty img{width:100px;height:100px;object-fit:contain}
.inoowa-ds .ds-empty h3,.inoowa-ds .ds-empty p{margin:0}
.inoowa-ds .ds-empty p{color:var(--inoowa-color-semantic-text-secondary);max-width:380px}
.inoowa-ds .ds-dialog{
 width:min(520px,calc(100vw - 48px));border:1px solid var(--inoowa-color-semantic-border-default);
 border-radius:var(--inoowa-radius-lg);background:var(--inoowa-color-semantic-surface);
 color:var(--inoowa-color-semantic-text-primary);padding:32px;
 box-shadow:0 32px 90px #000b
}
.inoowa-ds .ds-dialog::backdrop{background:#071029cf;backdrop-filter:blur(7px)}
.inoowa-ds .ds-dialog h2{font-size:var(--inoowa-font-size-section);line-height:var(--inoowa-font-leading-section)}
.inoowa-ds .ds-dialog p{color:var(--inoowa-color-semantic-text-secondary)}
.inoowa-ds .ds-rail{
 display:flex;flex-direction:column;gap:8px;width:var(--inoowa-size-nav-width);padding:16px 8px;
 border:1px solid #8fb9e357;border-radius:24px;
 background:linear-gradient(160deg,var(--inoowa-color-semantic-surface),var(--inoowa-color-primitive-navy700))
}
.inoowa-ds .ds-rail__item{
 width:100%;min-height:var(--inoowa-size-nav-item-height);
 border-radius:16px;border:1px solid #8bb0d36b;
 display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
 background:#203466;color:var(--inoowa-color-semantic-text-primary);
 font-size:12px;font-weight:700;cursor:pointer
}
.inoowa-ds .ds-rail__item[aria-current="page"]{
 background:#315b9c;border-color:var(--inoowa-color-semantic-action-primary)
}
.inoowa-ds .ds-rail__item img{width:var(--inoowa-size-nav-art);height:var(--inoowa-size-nav-art);object-fit:contain}
.inoowa-ds .ds-rail__item img[hidden]{display:none}
.inoowa-ds .ds-rail__item:hover{background:#315287}
.inoowa-ds .ds-rail__item:disabled{opacity:.5;cursor:not-allowed}
@keyframes ds-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){
 .inoowa-ds .ds-btn,.inoowa-ds .ds-chip{transition:none}
 .inoowa-ds .ds-btn.is-loading::before{animation:none;border-right-color:currentColor}
}
