/* MSDP design language page. Everything here is drawn with msdp-tokens.css; the ms- classes are the proposed patterns. */
body{font-family:var(--msdp-font);background:var(--msdp-canvas);color:var(--msdp-text)}
.ds-page{color:var(--msdp-text)}
.ds-page section{padding:var(--msdp-space-12) 0;border-top:1px solid var(--msdp-border)}
.ds-page :is(h1,h2,h3){margin:0;color:var(--msdp-text);font-weight:650;letter-spacing:-.02em}
.ds-page h2{font-size:var(--msdp-text-2xl);line-height:1.1;margin-bottom:var(--msdp-space-6)}
.ds-page h3{font-size:var(--msdp-text-lg);line-height:1.25}
.ds-page p{margin:0;color:var(--msdp-text-secondary)}
.ds-page code{font:500 12px var(--msdp-font-mono);color:var(--msdp-text-muted)}
.ds-page :is(button,input,a):focus-visible{outline:2px solid var(--msdp-focus);outline-offset:2px}
.ds-label{font:600 var(--msdp-text-xs)/1.4 var(--msdp-font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--msdp-action)!important;margin-bottom:var(--msdp-space-3)!important}
.ds-page .ds-note{font-size:var(--msdp-text-xs);line-height:1.5;color:var(--msdp-text-muted);margin-top:var(--msdp-space-4)}
.ds-intro{font-size:var(--msdp-text-md);max-width:640px;margin:-8px 0 var(--msdp-space-6)!important}
.ds-sub{margin:var(--msdp-space-8) 0 var(--msdp-space-4)!important}

.ds-cover{padding:var(--msdp-space-16) 0 var(--msdp-space-12)}
.ds-cover h1{font-size:clamp(36px,5vw,var(--msdp-text-3xl));line-height:1.05;max-width:820px;margin-bottom:var(--msdp-space-6)}
.ds-cover>p:last-child{font-size:var(--msdp-text-lg);line-height:1.5;max-width:720px}

.ds-grid{display:grid;gap:var(--msdp-space-4)}
.ds-grid.four{grid-template-columns:repeat(4,1fr)}
.ds-grid.three{grid-template-columns:repeat(3,1fr);margin-top:var(--msdp-space-6)}
.ds-grid.two{grid-template-columns:1.2fr 1fr;gap:var(--msdp-space-12);align-items:start}
.ds-grid article{background:var(--msdp-layer);border:1px solid var(--msdp-border);border-radius:var(--msdp-radius-md);padding:var(--msdp-space-6)}
.ds-grid article p{font-size:var(--msdp-text-sm);line-height:1.55;margin-top:var(--msdp-space-2)}

.ds-principles{list-style:none;margin:0;padding:0;counter-reset:rule;display:grid;grid-template-columns:1fr 1fr;gap:0 var(--msdp-space-12)}
.ds-principles li{counter-increment:rule;display:grid;grid-template-columns:36px 1fr;gap:2px 0;padding:var(--msdp-space-4) 0;border-top:1px solid var(--msdp-border)}
.ds-principles li:before{content:counter(rule);grid-row:1/3;font:650 var(--msdp-text-lg) var(--msdp-font);color:var(--msdp-action)}
.ds-principles b{font-size:var(--msdp-text-lg);letter-spacing:-.01em}
.ds-principles span{font-size:var(--msdp-text-sm);color:var(--msdp-text-secondary)}

.ds-swatches{display:grid;grid-template-columns:repeat(8,1fr);gap:var(--msdp-space-3)}
.ds-swatches i{display:block;height:64px;border-radius:var(--msdp-radius-md);background:var(--c);border:1px solid var(--msdp-border);margin-bottom:var(--msdp-space-2)}
.ds-swatches b{display:block;font-size:var(--msdp-text-sm)}
.ds-swatches code{font-size:10px;overflow-wrap:anywhere}
.ds-states{list-style:none;margin:0;padding:0;border-top:1px solid var(--msdp-border)}
.ds-states li{display:grid;grid-template-columns:190px 1fr auto;align-items:center;gap:var(--msdp-space-4);padding:var(--msdp-space-3) 0;border-bottom:1px solid var(--msdp-border)}
.ds-states p{font-size:var(--msdp-text-sm)}

.ds-type p{color:var(--msdp-text);font-weight:650;letter-spacing:-.02em;line-height:1.25;padding:6px 0;border-bottom:1px solid var(--msdp-border)}
.ds-type p:nth-child(n+5){font-weight:400;letter-spacing:0}
.ds-space{display:flex;align-items:flex-end;gap:var(--msdp-space-3);height:64px}
.ds-space i{width:var(--s);height:var(--s);background:var(--msdp-action);border-radius:2px}
.ds-radius{display:flex;gap:var(--msdp-space-3);margin-top:var(--msdp-space-6)}
.ds-radius i{display:grid;place-items:center;width:72px;height:48px;font:600 12px var(--msdp-font);color:var(--msdp-text-secondary);background:var(--msdp-layer);border:1px solid var(--msdp-border-strong)}

.ds-pattern{display:grid;grid-template-columns:.8fr 1.2fr;gap:var(--msdp-space-8);align-items:center;padding:var(--msdp-space-6) 0;border-top:1px solid var(--msdp-border)}
.ds-pattern>*{min-width:0}
.ds-pattern p{font-size:var(--msdp-text-sm);line-height:1.55;margin-top:var(--msdp-space-2);max-width:380px}
.ds-demo{display:flex;flex-wrap:wrap;gap:var(--msdp-space-3);align-items:center}
.ds-demo.block{display:block}
.ds-demo.wide{background:var(--msdp-layer);border:1px solid var(--msdp-border);border-radius:var(--msdp-radius-lg);padding:var(--msdp-space-6);gap:var(--msdp-space-4)}
.ds-table-wrap{overflow-x:auto}
.ds-table{font-size:var(--msdp-text-sm);white-space:normal;background:var(--msdp-layer);border:1px solid var(--msdp-border);min-width:560px}
.ds-table th{background:var(--msdp-layer-sunken);color:var(--msdp-text-muted);font-size:var(--msdp-text-xs);text-transform:none;letter-spacing:0}
.ds-table td,.ds-table th{padding:var(--msdp-space-3) var(--msdp-space-4);border-bottom:1px solid var(--msdp-border);line-height:1.5;vertical-align:top}
.ds-table td:first-child{font-weight:600;color:var(--msdp-text)}

/* ---- Proposed MSDP patterns ---- */
.ms-chip{display:inline-flex;align-items:center;gap:6px;font:600 var(--msdp-text-xs)/1.3 var(--msdp-font);font-style:normal;padding:4px 10px;border-radius:var(--msdp-radius-full);white-space:nowrap;background:var(--msdp-open-bg);color:var(--msdp-open-text)}
.ms-chip:before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.ms-chip.progress,.ms-owner.progress{background:var(--msdp-progress-bg);color:var(--msdp-progress-text)}
.ms-chip.review,.ms-owner.review{background:var(--msdp-review-bg);color:var(--msdp-review-text)}
.ms-chip.returned,.ms-owner.returned{background:var(--msdp-returned-bg);color:var(--msdp-returned-text)}
.ms-chip.ready,.ms-owner.ready{background:var(--msdp-ready-bg);color:var(--msdp-ready-text)}
.ms-chip.approved,.ms-owner.approved{background:var(--msdp-approved-bg);color:var(--msdp-approved-text)}

.ms-owner{display:inline-flex;align-items:center;gap:8px;font:500 var(--msdp-text-xs)/1.3 var(--msdp-font);padding:4px 10px 4px 4px;border-radius:var(--msdp-radius-full);background:var(--msdp-open-bg);color:var(--msdp-open-text);white-space:nowrap}
.ms-owner b{font-weight:650;background:var(--msdp-layer);border-radius:var(--msdp-radius-full);padding:3px 9px}

.ms-chain{list-style:none;margin:0;padding:0;display:flex;filter:drop-shadow(var(--msdp-shadow-1))}
.ms-chain li{flex:1;min-width:0;font-size:var(--msdp-text-xs);line-height:1.35;padding:10px 14px 10px 26px;margin-right:-4px;background:var(--msdp-layer-sunken);color:var(--msdp-text-muted);clip-path:polygon(0 0,calc(100% - 13px) 0,100% 50%,calc(100% - 13px) 100%,0 100%,13px 50%)}
.ms-chain li:first-child{padding-left:16px;clip-path:polygon(0 0,calc(100% - 13px) 0,100% 50%,calc(100% - 13px) 100%,0 100%);border-radius:var(--msdp-radius-sm) 0 0 var(--msdp-radius-sm)}
.ms-chain li:last-child{margin-right:0;clip-path:polygon(0 0,100% 0,100% 100%,0 100%,13px 50%);border-radius:0 var(--msdp-radius-sm) var(--msdp-radius-sm) 0}
.ms-chain b{display:block;font-size:var(--msdp-text-sm);color:var(--msdp-text-secondary)}
.ms-chain .done{background:var(--msdp-approved-bg);color:var(--msdp-approved-text)}
.ms-chain .done b{color:var(--msdp-approved-text)}
.ms-chain .live{background:var(--msdp-action);color:#fff}
.ms-chain .live b{color:#fff}

.ms-value{display:flex;gap:3px;height:16px}
.ms-value i{display:block;border-radius:4px;min-width:6px;background:var(--msdp-open)}
.ms-value .approved{background:var(--msdp-approved)}
.ms-value .review{background:var(--msdp-review)}
.ms-value .ready{background:var(--msdp-ready)}
.ms-value .returned{background:var(--msdp-returned)}

.ms-steps{list-style:none;margin:0;padding:0;background:var(--msdp-layer);border:1px solid var(--msdp-border);border-radius:var(--msdp-radius-md)}
.ms-steps li{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:var(--msdp-space-3);min-height:var(--msdp-touch);padding:var(--msdp-space-3) var(--msdp-space-4);border-top:1px solid var(--msdp-border)}
.ms-steps li:first-child{border-top:0}
.ms-steps i{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--msdp-border-strong);position:relative}
.ms-steps .done i{background:var(--msdp-approved);border-color:var(--msdp-approved)}
.ms-steps .done i:after{content:'';position:absolute;left:5px;top:5px;width:8px;height:4px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg)}
.ms-steps .back i{border-color:var(--msdp-returned);background:var(--msdp-returned-bg)}
.ms-steps span{font-size:var(--msdp-text-xs);color:var(--msdp-text-muted);line-height:1.4}
.ms-steps span b{display:block;font-size:var(--msdp-text-sm);color:var(--msdp-text)}

.ms-record{background:var(--msdp-layer);border:1px solid var(--msdp-border);border-radius:var(--msdp-radius-lg);box-shadow:var(--msdp-shadow-2);padding:var(--msdp-space-4);max-width:420px}
.ms-record header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--msdp-space-3)}
.ms-record small{display:block;font:500 var(--msdp-text-xs) var(--msdp-font-mono);color:var(--msdp-text-muted)}
.ms-record header div b{font-size:var(--msdp-text-lg);letter-spacing:-.01em}
.ms-record dl{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--msdp-space-3);margin:var(--msdp-space-4) 0;padding:var(--msdp-space-3) 0;border-block:1px solid var(--msdp-border)}
.ms-record dt{font-size:var(--msdp-text-xs);color:var(--msdp-text-muted)}
.ms-record dd{margin:2px 0 0;font-size:var(--msdp-text-sm);font-weight:600}
.ms-record footer{display:flex;gap:var(--msdp-space-2);padding:0;border:0}

.ms-button{font:600 var(--msdp-text-sm) var(--msdp-font);min-height:var(--msdp-touch);padding:0 var(--msdp-space-4);border-radius:var(--msdp-radius-md);border:1px solid var(--msdp-action);background:var(--msdp-action);color:#fff;cursor:pointer;transition:background var(--msdp-motion-fast)}
.ms-button:hover{background:var(--msdp-action-hover)}
.ms-button.secondary{background:var(--msdp-layer);color:var(--msdp-text);border-color:var(--msdp-border-strong)}
.ms-button.secondary:hover{background:var(--msdp-layer-sunken)}
.ms-button.quiet{background:none;border-color:transparent;color:var(--msdp-link)}
.ms-button.quiet:hover{background:var(--msdp-layer-sunken)}
.ms-field{display:grid;gap:6px;margin:0;font:600 var(--msdp-text-xs) var(--msdp-font);color:var(--msdp-text-secondary)}
.ms-field input{width:200px;min-height:var(--msdp-touch);border:1px solid var(--msdp-border-strong);border-radius:var(--msdp-radius-sm);padding:0 var(--msdp-space-3);font:400 var(--msdp-text-sm) var(--msdp-font);color:var(--msdp-text);background:var(--msdp-layer)}
@media(max-width:900px){
.ds-grid.four,.ds-grid.three{grid-template-columns:1fr 1fr}
.ds-grid.two,.ds-pattern{grid-template-columns:1fr;gap:var(--msdp-space-6)}
.ds-swatches{grid-template-columns:repeat(4,1fr)}
.ds-principles{grid-template-columns:1fr}
}
@media(max-width:700px){
.ds-page h2{font-size:var(--msdp-text-xl)}
.ds-cover{padding:var(--msdp-space-12) 0 var(--msdp-space-8)}
.ds-cover>p:last-child{font-size:var(--msdp-text-md)}
.ds-grid.four,.ds-grid.three{grid-template-columns:1fr}
.ds-states li{grid-template-columns:1fr;gap:6px}
.ds-states code{display:none}
.ms-chain{flex-direction:column;gap:4px;filter:none}
.ms-chain li,.ms-chain li:first-child,.ms-chain li:last-child{clip-path:none;margin:0;padding:10px 14px;border-radius:var(--msdp-radius-sm)}
.ms-record dl{grid-template-columns:1fr 1fr}
.ds-type p{overflow-wrap:anywhere}
.ds-type p:first-child{font-size:var(--msdp-text-2xl)!important}
}
.ds-states .ms-chip{justify-self:start}
/* The shared trial stylesheet also has an .open rule; restate ours. */
.ds-page .ms-chip.open{background:var(--msdp-open-bg);color:var(--msdp-open-text)}
.ds-page .ms-value .open{background:var(--msdp-open)}
.ds-tests ul{list-style:none;margin:var(--msdp-space-3) 0 0;padding:0;font-size:var(--msdp-text-xs);color:var(--msdp-text-muted)}
.ds-tests li{padding:6px 0;border-top:1px solid var(--msdp-border)}
