.sg-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font:inherit;font-size:var(--fs-base);font-weight:var(--fw-medium);line-height:1;padding:0 var(--space-4);height:36px;border:1px solid transparent;border-radius:var(--radius-md);background:var(--surface-hover);color:var(--text);cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.sg-btn:hover{background:var(--surface-selected)}.sg-btn:active{transform:translateY(1px)}.sg-btn:disabled,.sg-btn[aria-disabled=true]{opacity:.5;cursor:not-allowed}.sg-btn--primary{background:var(--primary);color:var(--primary-contrast)}.sg-btn--primary:hover{background:var(--primary-hover)}.sg-btn--success{background:var(--success);color:#fff}.sg-btn--danger{background:var(--danger);color:#fff}.sg-btn--warning{background:var(--warning);color:var(--warning-text)}.sg-btn--subtle{background:0 0;color:var(--text)}.sg-btn--subtle:hover{background:var(--surface-hover)}.sg-btn--outline{background:0 0;border-color:var(--border-strong);color:var(--text)}.sg-btn--outline:hover{background:var(--surface-hover)}.sg-btn--link{background:0 0;color:var(--text-link);padding:0;height:auto}.sg-btn--link:hover{text-decoration:underline}.sg-btn--sm{height:28px;font-size:var(--fs-sm);padding:0 var(--space-3)}.sg-btn--lg{height:44px;font-size:var(--fs-md);padding:0 var(--space-5)}.sg-btn--icon{width:36px;padding:0}.sg-btn--block{width:100%}.sg-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.sg-card--hover{transition:box-shadow var(--transition-fast),transform var(--transition-fast)}.sg-card--hover:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}.sg-card__header{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border);font-weight:var(--fw-semibold)}.sg-card__body{padding:var(--space-5)}.sg-card__footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border)}.sg-modal-overlay{position:fixed;inset:0;background:var(--overlay);display:none;align-items:flex-start;justify-content:center;padding:var(--space-7) var(--space-4);z-index:var(--z-modal);overflow-y:auto}.sg-modal-overlay.is-open{display:flex}.sg-modal{background:var(--surface);color:var(--text);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);width:100%;max-width:560px;max-height:90vh;display:flex;flex-direction:column}.sg-modal--lg{max-width:880px}.sg-modal__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border)}.sg-modal__title{margin:0;font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.sg-modal__close{background:0 0;border:none;color:var(--text-muted);font-size:var(--fs-xl);line-height:1;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm)}.sg-modal__close:hover{background:var(--surface-hover);color:var(--text)}.sg-modal__body{padding:var(--space-5);overflow-y:auto}.sg-modal__footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--border);display:flex;gap:var(--space-2);justify-content:flex-end}.sg-table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}.sg-table thead th{text-align:left;padding:var(--space-3) var(--space-4);background:var(--surface-sunken);color:var(--text-muted);font-size:var(--fs-xs);font-weight:var(--fw-semibold);letter-spacing:.04em;text-transform:uppercase;border-bottom:1px solid var(--border);white-space:nowrap}.sg-table tbody td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);color:var(--text);vertical-align:top}.sg-table tbody tr:hover{background:var(--surface-hover)}.sg-table--striped tbody tr:nth-child(even){background:var(--table-stripe)}.sg-field{display:flex;flex-direction:column;gap:var(--space-1)}.sg-label{font-size:var(--fs-sm);font-weight:var(--fw-medium);color:var(--text-muted)}.sg-input,.sg-select,.sg-textarea{font:inherit;font-size:var(--fs-base);width:100%;padding:var(--space-2) var(--space-3);background:var(--input-bg);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.sg-input:focus,.sg-select:focus,.sg-textarea:focus{outline:0;border-color:var(--focus-ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--focus-ring) 35%,transparent)}.sg-textarea{min-height:90px;resize:vertical}.sg-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);font-size:var(--fs-xs);font-weight:var(--fw-semibold);line-height:1.4;border-radius:var(--radius-sm);background:var(--surface-hover);color:var(--text-muted);white-space:nowrap}.sg-badge--success{background:var(--success-bg);color:var(--success-text)}.sg-badge--warning{background:var(--warning-bg);color:var(--warning-text)}.sg-badge--danger{background:var(--danger-bg);color:var(--danger-text)}.sg-badge--info{background:var(--info-bg);color:var(--info-text)}.sg-badge--pill{border-radius:var(--radius-pill);padding:2px var(--space-3)}.sg-tabs{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border)}.sg-tab{font:inherit;font-size:var(--fs-base);font-weight:var(--fw-medium);padding:var(--space-3) var(--space-4);background:0 0;border:none;border-bottom:2px solid transparent;color:var(--text-muted);cursor:pointer}.sg-tab:hover{color:var(--text)}.sg-tab.is-active{color:var(--primary);border-bottom-color:var(--primary)}.sg-menu{position:absolute;min-width:180px;background:var(--surface-raised);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:var(--space-1);z-index:var(--z-dropdown)}.sg-menu__item{display:flex;align-items:center;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-3);font-size:var(--fs-base);color:var(--text);background:0 0;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;text-decoration:none}.sg-menu__item:hover{background:var(--surface-hover)}.sg-menu__separator{height:1px;margin:var(--space-1) 0;background:var(--border)}.sg-toast-region{position:fixed;bottom:var(--space-5);right:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);z-index:var(--z-toast)}.sg-toast{display:flex;align-items:center;gap:var(--space-3);min-width:260px;max-width:420px;padding:var(--space-3) var(--space-4);background:var(--surface-raised);color:var(--text);border:1px solid var(--border);border-left:4px solid var(--primary);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.sg-toast--success{border-left-color:var(--success)}.sg-toast--danger{border-left-color:var(--danger)}.sg-toast--warning{border-left-color:var(--warning)}.sg-avatar{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-pill);background:var(--primary);color:var(--primary-contrast);font-size:var(--fs-xs);font-weight:var(--fw-semibold);text-transform:uppercase;overflow:hidden;flex:none}.sg-avatar img{width:100%;height:100%;object-fit:cover}.sg-avatar--sm{width:24px;height:24px;font-size:.65rem}.sg-avatar--lg{width:44px;height:44px;font-size:var(--fs-base)}.sg-avatar--unassigned{background:var(--surface-hover);color:var(--text-muted)}.sg-avatar-group{display:inline-flex;align-items:center}.sg-avatar-group .sg-avatar{box-shadow:0 0 0 2px var(--surface);margin-left:-7px}.sg-avatar-group .sg-avatar:first-child{margin-left:0}.sg-avatar-group .sg-avatar--more{background:var(--surface-hover);color:var(--text-muted)}.sg-progress{height:8px;background:var(--progress-bg);border-radius:var(--radius-pill);overflow:hidden}.sg-progress__value{height:100%;background:var(--primary);border-radius:inherit;transition:width var(--transition)}.sg-progress__value--success{background:var(--success)}.sg-progress__value--danger{background:var(--danger)}.sg-empty{padding:var(--space-6);text-align:center;color:var(--text-muted);background:var(--empty-bg);border:1px dashed var(--empty-border);border-radius:var(--radius-lg)}.sg-shell{position:sticky;top:0;z-index:var(--z-header);background:var(--shell-bg);color:var(--shell-text);box-shadow:var(--shadow-sm)}.sg-shell__inner{display:flex;align-items:center;gap:var(--space-4);height:var(--shell-height);padding:0 var(--space-4);max-width:1920px;margin:0 auto}.sg-shell__brand{display:inline-flex;align-items:center;gap:var(--space-2);color:var(--shell-text);font-weight:var(--fw-bold);font-size:var(--fs-md);text-decoration:none;white-space:nowrap}.sg-shell__brand i{color:var(--shell-active)}.sg-shell__nav{display:flex;align-items:center;gap:var(--space-1);flex:1 1 auto;overflow-x:auto;scrollbar-width:none}.sg-shell__nav::-webkit-scrollbar{display:none}.sg-shell__link{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--shell-text-muted);font-size:var(--fs-base);font-weight:var(--fw-medium);text-decoration:none;white-space:nowrap;transition:background-color var(--transition-fast),color var(--transition-fast)}.sg-shell__link:hover{background:var(--shell-hover);color:var(--shell-text)}.sg-shell__link.is-active{color:var(--shell-text);background:var(--shell-hover);box-shadow:inset 0 -2px 0 var(--shell-active)}.sg-shell__link i{font-size:var(--fs-sm)}.sg-shell__actions{display:flex;align-items:center;gap:var(--space-1)}.sg-shell__icon-btn{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:var(--radius-md);background:0 0;color:var(--shell-text-muted);cursor:pointer;font-size:var(--fs-md);transition:background-color var(--transition-fast),color var(--transition-fast)}.sg-shell__icon-btn:hover{background:var(--shell-hover);color:var(--shell-text)}.sg-shell__burger{display:none}@media (max-width:860px){.sg-shell__burger{display:inline-flex}.sg-shell__nav{position:absolute;top:var(--shell-height);left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:var(--space-2);background:var(--shell-bg);box-shadow:var(--shadow-lg);display:none;overflow-x:visible}.sg-shell.is-open .sg-shell__nav{display:flex}.sg-shell__link{padding:var(--space-3)}}