/* Scoped reusable subset, not a wholesale copy of application CSS. */
.ds,.ds *{box-sizing:border-box}.ds{margin:0;font:14px/20px var(--font);color:var(--text);background:var(--canvas)}
.ds [hidden]{display:none!important}.ds :focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ds a{color:var(--action-text);text-underline-offset:2px}.ds h1{font-size:24px;line-height:32px;font-weight:600;margin:0}.ds h2{font-size:16px;line-height:24px;font-weight:600;margin:0}
.ds p{margin:0 0 16px}.ds small,.ds th{font-size:12px;line-height:16px}.ds .muted{color:var(--muted)}.ds .num{font-family:var(--mono);text-align:right;font-variant-numeric:tabular-nums}
.ds .shell{display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}
.ds .sidebar{position:sticky;top:0;height:100vh;padding:16px 12px;border-right:1px solid var(--border);background:var(--canvas)}
.ds .brand{display:flex;align-items:center;gap:10px;margin:4px 8px 16px;font:700 20px/28px var(--mono)}.ds .mark{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:var(--text);color:var(--canvas);font-size:17px}
.ds .nav-label{display:block;margin:14px 10px 3px;font-size:11px;line-height:16px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ds .sidebar nav{display:flex;flex-direction:column;gap:1px}.ds .sidebar nav a{padding:6px 10px;border-radius:6px;text-decoration:none;color:var(--muted);font-weight:500}.ds .sidebar nav a:hover{background:var(--surface)}.ds .sidebar nav a[aria-current]{background:var(--surface-2);color:var(--text);font-weight:600}
.ds .content{min-width:0;background:var(--wash,var(--canvas))}.ds .top{position:sticky;top:0;z-index:5;height:var(--header);padding:0 24px;display:flex;gap:16px;align-items:center;background:var(--canvas);border-bottom:1px solid var(--border)}
.ds .topics{display:flex;gap:4px;min-width:0}.ds .topics button{height:52px;border:0;border-bottom:2px solid transparent;border-radius:0;background:transparent;padding:0 12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;color:var(--muted)}.ds .topics button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--ink)}.ds .utility{margin-left:auto;white-space:nowrap;color:var(--muted)}
.ds main{padding:24px}.ds .pagehead{margin-bottom:20px}.ds .heading-row,.ds .actions,.ds .toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.ds .heading-row{justify-content:space-between;gap:12px 24px}.ds .description{margin:2px 0 0;color:var(--muted)}
.ds button,.ds input,.ds select{font:inherit;color:var(--text);height:32px;padding:0 10px;border:1px solid var(--btn-border);border-radius:6px;background:var(--btn);max-width:100%}.ds button{cursor:pointer;font-weight:500}.ds button:hover{background:var(--btn-hover)}.ds button:active{background:var(--btn-active)}.ds button:disabled{opacity:.5;cursor:not-allowed}.ds button.primary{background:var(--action-text);border-color:var(--action-text);color:var(--canvas);border-radius:10px}.ds .toolbar{gap:12px;margin-bottom:12px}.ds .toolbar label{display:grid;gap:4px}.ds .toolbar input{width:240px}
.ds .card{margin-bottom:16px;border:1px solid var(--border);border-radius:6px;background:var(--canvas)}.ds .card-head{display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;padding:10px 16px;border-bottom:1px solid var(--border)}.ds .table-wrap{overflow:auto;max-height:65vh;border-radius:6px}.ds table{border-spacing:0;width:100%}.ds th,.ds td{padding:9px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}.ds th{position:sticky;top:0;background:var(--surface);font-weight:600;color:var(--muted)}.ds tr:last-child td{border-bottom:0}.ds tbody tr:hover{background:var(--surface)}
.ds .badge{display:inline-block;padding:0 8px;border-radius:999px;font:12px/20px var(--mono);white-space:nowrap;background:var(--surface-2)}.ds .badge.ok{color:var(--success-text);background:var(--ok-bg)}.ds .badge.warn{color:var(--warn);background:var(--warn-bg)}.ds .badge.danger{color:var(--danger);background:var(--danger-bg)}
.ds .banner{padding:12px 16px;border:1px solid var(--warn-border);border-radius:6px;background:var(--warn-bg);margin-bottom:16px}.ds .empty{padding:28px 16px;text-align:center;color:var(--muted)}.ds .panel{padding:16px}.ds .panel h1{font-size:16px;line-height:24px}.ds .pager{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.ds dialog{color:var(--text);background:var(--canvas);border:1px solid var(--border);border-radius:8px;padding:0;width:min(460px,calc(100vw - 32px));box-shadow:var(--dialog-shadow)}.ds dialog::backdrop{background:var(--overlay)}.ds dialog form{padding:16px;display:grid;gap:16px}.ds dialog label{display:grid;gap:4px}.ds dialog .actions{justify-content:flex-end}
.ds .menu{display:none}.ds .drawer{margin:0;height:100dvh;max-height:100dvh;width:min(280px,85vw);max-width:none;border-radius:0}.ds .drawer nav{display:grid;gap:16px;padding:16px}.ds .drawer::backdrop{background:var(--overlay)}
@media(max-width:1024px){.ds .shell{grid-template-columns:minmax(0,1fr)}.ds .sidebar{display:none}.ds .menu{display:inline-flex;align-items:center;flex:none}.ds .top{padding:0 12px;gap:8px}.ds .topics{overflow-x:auto;flex:1}.ds main{padding:16px}}
@media(max-width:640px){.ds main{padding:12px}.ds .utility{display:none}.ds .toolbar label,.ds .toolbar input,.ds .toolbar select{width:100%}.ds .toolbar label{flex:1 1 100%}.ds .heading-row{display:block}.ds .heading-row .actions{margin-top:8px}.ds button,.ds input,.ds select{min-height:36px}.ds dialog:not(.drawer){width:calc(100vw - 16px)}.ds th{position:static}}
@media(prefers-reduced-motion:no-preference){.ds button,.ds .sidebar nav a{transition:background .1s}}
