.sw-stage{margin:0;padding:var(--space-6);background:var(--canvas);color:var(--ink-body);font-family:var(--font-sans);font-size:15px;line-height:24px;-webkit-font-smoothing:antialiased}
.sw-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3)}
.sw-stack{display:flex;flex-direction:column;gap:var(--space-4)}
.sw-mono{font-family:var(--font-mono);font-size:13px;line-height:20px}
.sw-tag{font:500 12px/16px var(--font-mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-tag)}
.sw-muted{color:var(--ink-muted)}
.sw-link{color:var(--link);text-decoration:none}
.sw-link:hover{text-decoration:underline}
.sw-stage :focus-visible,.sw-btn:focus-visible,.sw-input:focus-visible,.sw-tab:focus-visible,.sw-link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}

/* Button */
.sw-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:32px;padding:0 var(--space-3);border:1px solid transparent;border-radius:var(--radius-md);font:500 13px/20px var(--font-sans);cursor:pointer;transition:background-color 120ms ease-out,border-color 120ms ease-out,color 120ms ease-out}
.sw-btn--primary{background:var(--azure-600);color:var(--on-accent)}
.sw-btn--primary:hover{background:var(--azure-700)}
.sw-btn--secondary{background:var(--surface);color:var(--ink);border-color:var(--border-control)}
.sw-btn--secondary:hover{background:var(--surface-raised)}
.sw-btn--ghost{background:transparent;color:var(--ink-muted)}
.sw-btn--ghost:hover{background:var(--surface-raised);color:var(--ink)}
.sw-btn--lg{height:40px;padding:0 var(--space-4);font-size:15px}
.sw-btn:disabled,.sw-btn[aria-disabled="true"]{background:var(--surface-raised);color:var(--ink-subtle);border-color:transparent;cursor:not-allowed}

/* Field */
.sw-field{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.sw-label{font:500 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.sw-input{height:36px;padding:0 var(--space-3);background:var(--surface);color:var(--ink);border:1px solid var(--border-control);border-radius:var(--radius-md);font:400 15px/24px var(--font-sans);transition:border-color 120ms ease-out}
.sw-input::placeholder{color:var(--ink-muted)}
.sw-input:hover{border-color:var(--ink-muted)}
.sw-input--mono{font-family:var(--font-mono);font-size:13px}
.sw-input[aria-invalid="true"]{border-color:var(--attention)}
.sw-input:disabled{background:var(--surface-raised);color:var(--ink-subtle);border-color:transparent}
.sw-help{font:400 13px/20px var(--font-sans);color:var(--ink-muted)}
.sw-help--attention{color:var(--attention)}

/* StatusBadge */
.sw-status{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);font:500 13px/20px var(--font-sans);white-space:nowrap;box-sizing:border-box}
.sw-status::before{content:"";width:6px;height:6px;border-radius:var(--radius-full);background:currentColor;flex:none}
.sw-status--active{background:var(--badge-bg);color:var(--badge-ink);border-color:var(--badge-border)}
.sw-status--active::before{background:var(--status-active);animation:sw-pulse 2.4s ease-out infinite}
@keyframes sw-pulse{0%{box-shadow:0 0 0 0 rgba(37,99,235,.45)}70%{box-shadow:0 0 0 6px rgba(37,99,235,0)}100%{box-shadow:0 0 0 0 rgba(37,99,235,0)}}
@media (prefers-reduced-motion:reduce){.sw-status--active::before{animation:none}}
.sw-status--info{background:var(--azure-50);color:var(--link);border-color:var(--azure-200)}
.sw-status--pending{background:var(--pending-tint);color:var(--status-pending);border-color:var(--pending-border)}
.sw-status--attention{background:var(--attention-tint);color:var(--status-attention);border-color:var(--attention-border)}
.sw-status--neutral{background:var(--badge-bg);color:var(--ink-tag);border-color:var(--badge-border)}
.sw-status--plain{background:transparent;padding:0;color:var(--ink)}
.sw-status--plain::before{background:var(--status-active)}
.sw-status--plain.sw-status--pending::before{background:var(--status-pending)}
.sw-status--plain.sw-status--attention::before{background:var(--status-attention)}

/* Card */
.sw-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:border-color 120ms ease-out}
.sw-card:hover{border-color:var(--border-hover)}
.sw-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);margin-bottom:var(--space-4)}
.sw-card__title{margin:0;font:600 16px/24px var(--font-sans);color:var(--ink)}
.sw-card__foot{display:flex;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border)}

/* KeyValue */
.sw-kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4) var(--space-6);margin:0}
.sw-kv dt{font:500 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:var(--space-1)}
.sw-kv dd{margin:0;color:var(--ink)}

/* Table */
.sw-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow-x:auto;box-shadow:var(--shadow-sm)}
.sw-table{width:100%;border-collapse:collapse;font:400 13px/20px var(--font-sans)}
.sw-table th{text-align:left;padding:var(--space-2) var(--space-4);background:var(--surface-raised);color:var(--ink-muted);font:500 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.sw-table td{padding:var(--space-3) var(--space-4);border-top:1px solid var(--border);color:var(--ink);white-space:nowrap}
.sw-table tbody tr:hover td{background:var(--surface-raised)}
.sw-table .sw-num{text-align:right;font-family:var(--font-mono)}

/* Tabs */
.sw-tabs{display:flex;gap:var(--space-6);border-bottom:1px solid var(--border)}
.sw-tab{position:relative;padding:var(--space-2) 0 var(--space-3);background:none;border:0;color:var(--ink-muted);font:500 13px/20px var(--font-sans);cursor:pointer;transition:color 120ms ease-out}
.sw-tab:hover{color:var(--ink)}
.sw-tab[aria-selected="true"]{color:var(--ink)}
.sw-tab[aria-selected="true"]::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--azure-600)}
.sw-tab__count{margin-left:6px;padding:0 6px;border-radius:var(--radius-sm);background:var(--surface-raised);color:var(--ink-muted);font:500 12px/16px var(--font-mono)}

/* Callout */
/* body of a callout reads in ink-body */
.sw-callout{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);border:1px solid var(--azure-200);border-radius:var(--radius-lg);background:var(--azure-50);font-size:13px;line-height:20px;color:var(--ink-body)}
.sw-callout__title{display:flex;align-items:center;gap:var(--space-2);font-weight:600;color:var(--ink)}
.sw-callout__title::before{content:"";width:6px;height:6px;border-radius:var(--radius-full);background:var(--azure-600)}
.sw-callout--attention{background:var(--attention-tint);border-color:var(--attention-border)}
.sw-callout--attention .sw-callout__title{color:var(--attention)}
.sw-callout--attention .sw-callout__title::before{background:var(--attention)}
.sw-callout--attention{color:var(--ink)}
.sw-table td.sw-muted{color:var(--ink-muted)}

/* Select */
.sw-select-wrap{position:relative;display:block}
.sw-select-wrap::after{content:"";position:absolute;right:14px;top:13px;width:6px;height:6px;border-right:1.5px solid var(--ink-muted);border-bottom:1.5px solid var(--ink-muted);transform:rotate(45deg);pointer-events:none}
.sw-select{width:100%;height:36px;padding:0 var(--space-8) 0 var(--space-3);background:var(--surface);color:var(--ink);border:1px solid var(--border-control);border-radius:var(--radius-md);font:400 15px/24px var(--font-sans);appearance:none;-webkit-appearance:none;cursor:pointer;transition:border-color 120ms ease-out}
.sw-select:hover{border-color:var(--ink-muted)}
.sw-select:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.sw-select[aria-invalid="true"]{border-color:var(--attention)}
.sw-select:disabled{background:var(--surface-raised);color:var(--ink-subtle);border-color:transparent;cursor:not-allowed}
.sw-select option{background:var(--surface-raised);color:var(--ink)}

/* Checkbox */
.sw-check{display:flex;align-items:flex-start;gap:var(--space-3);font:400 15px/24px var(--font-sans);color:var(--ink);cursor:pointer}
.sw-check input{appearance:none;-webkit-appearance:none;flex:none;position:relative;width:16px;height:16px;margin:4px 0 0;background:var(--surface);border:1px solid var(--border-control);border-radius:var(--radius-sm);cursor:pointer;transition:background-color 120ms ease-out,border-color 120ms ease-out}
.sw-check input:hover{border-color:var(--ink-muted)}
.sw-check input:checked{background:var(--azure-600);border-color:var(--azure-600)}
.sw-check input:checked::after{content:"";position:absolute;left:4.5px;top:1.5px;width:4px;height:8px;border-right:2px solid var(--on-accent);border-bottom:2px solid var(--on-accent);transform:rotate(45deg)}
.sw-check input:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.sw-check input:disabled{background:var(--surface-raised);border-color:transparent;cursor:not-allowed}
.sw-check__hint{display:block;font-size:13px;line-height:20px;color:var(--ink-muted)}

/* Modal */
.sw-scrim{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-6);background:rgba(2,6,23,.72)}
.sw-modal{width:100%;max-width:480px;background:var(--surface);border:1px solid var(--surface-raised);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);color:var(--ink)}
.sw-modal__head{padding:var(--space-6) var(--space-6) 0}
.sw-modal__title{margin:0;font:600 16px/24px var(--font-sans)}
.sw-modal__body{padding:var(--space-2) var(--space-6) var(--space-6);font-size:13px;line-height:20px;color:var(--ink-muted)}
.sw-modal__foot{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border)}

/* SideNav */
.sw-nav{display:flex;flex-direction:column;gap:var(--space-6);width:240px;box-sizing:border-box;padding:var(--space-4);background:var(--canvas);border-right:1px solid var(--border)}
.sw-nav__brand{display:flex;align-items:center;gap:var(--space-2);padding:0 var(--space-2);font:600 16px/24px var(--font-sans);letter-spacing:-.02em;color:var(--ink)}
.sw-nav__group{display:flex;flex-direction:column;gap:2px}
.sw-nav__heading{padding:0 var(--space-2) var(--space-2);font:500 12px/16px var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}
.sw-nav__item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);height:32px;padding:0 var(--space-2);border-radius:var(--radius-md);color:var(--ink-muted);font:500 13px/20px var(--font-sans);text-decoration:none;transition:background-color 120ms ease-out,color 120ms ease-out}
.sw-nav__item:hover{background:var(--surface);color:var(--ink)}
.sw-nav__item[aria-current="page"]{background:var(--surface-raised);color:var(--ink)}
.sw-nav__item:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.sw-nav__count{font:500 12px/16px var(--font-mono);color:var(--ink-muted)}
.sw-nav__count--attention{color:var(--attention)}
.sw-nav__mark{flex:none}
.sw-nav__mark-tile{fill:var(--azure-600)}
.sw-nav__mark-rail{fill:var(--on-accent)}

/* Icon */
.sw-icon{flex:none;width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.sw-icon--lg{width:20px;height:20px;vertical-align:-4px}
.sw-icon-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(152px,1fr));gap:var(--space-2)}
.sw-icon-cell{display:flex;align-items:center;gap:var(--space-2);height:32px;padding:0 var(--space-2);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--ink-muted);font:400 12px/16px var(--font-mono);white-space:nowrap;overflow:hidden}
.sw-icon-cell .sw-icon{color:var(--ink)}
.sw-status--plain,.sw-status--plain.sw-status--pending,.sw-status--plain.sw-status--attention{background:transparent;border-color:transparent;color:var(--ink)}
