/* 素材库 design-assets/styles/computer-art/kit/components.css 原样搬入（ISC，见同目录 LICENSE）。不要在这里改，覆盖写在 style.css / report.css。 */
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-bottom:100px}body{margin:0;background:var(--ca-bg);color:var(--ca-text);font:var(--ca-weight-regular) var(--ca-size-body)/var(--ca-leading) var(--ca-font-sans);-webkit-font-smoothing:antialiased}button,a,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--ca-accent);outline-offset:4px}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:var(--ca-weight-medium);line-height:var(--ca-leading-title)}h1{font-size:var(--ca-size-title)}h2{font-size:var(--ca-size-card)}h3{font-size:var(--ca-size-body)}svg{display:block;flex-shrink:0}button svg,a svg{pointer-events:none}[hidden]{display:none!important}.ca-icon{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}.ca-mono{font-family:var(--ca-font-mono)}.ca-kicker{font:var(--ca-weight-regular) var(--ca-size-label)/1.5 var(--ca-font-mono);letter-spacing:.08em;color:var(--ca-muted)}.ca-muted{color:var(--ca-muted)}.ca-small{font-size:var(--ca-size-small)}.ca-number{font:var(--ca-weight-medium) var(--ca-size-number)/1.12 var(--ca-font-mono);letter-spacing:-.04em}.ca-arrow{margin-left:auto}.ca-rule{height:1px;border:0;background:var(--ca-line);margin:var(--ca-space-6) 0}.ca-shell{min-height:100svh;display:grid;grid-template-columns:var(--ca-sidebar) minmax(0,1fr)}.ca-sidebar{position:sticky;top:0;height:100svh;background:var(--ca-surface);padding:var(--ca-space-10) var(--ca-space-5) var(--ca-space-6);border-right:1px solid var(--ca-line);display:flex;flex-direction:column}.ca-brand{display:flex;align-items:center;gap:var(--ca-space-3);font-size:var(--ca-size-brand);font-weight:var(--ca-weight-medium);white-space:nowrap}.ca-mark{width:30px;height:30px;color:var(--ca-accent);flex-shrink:0}.ca-sidebar .ca-brand{padding:0 var(--ca-space-2)}.ca-nav{display:grid;gap:var(--ca-space-2);margin-top:var(--ca-space-12)}.ca-nav a{height:48px;display:flex;gap:var(--ca-space-3);align-items:center;padding:0 var(--ca-space-4);border-radius:var(--ca-radius-control);color:var(--ca-muted);font-size:var(--ca-size-small)}.ca-nav a:hover{background:var(--ca-bg);color:var(--ca-text)}.ca-nav a[aria-current="page"]{color:var(--ca-accent);background:var(--ca-accent-soft);font-weight:var(--ca-weight-medium)}.ca-nav-count{margin-left:auto;font:var(--ca-size-label) var(--ca-font-mono)}.ca-side-foot{margin-top:auto;padding:var(--ca-space-4) var(--ca-space-2) 0;border-top:1px solid var(--ca-line);display:flex;justify-content:space-between;align-items:center}.ca-main{min-width:0;padding:var(--ca-space-10);max-width:1440px;width:100%;margin:auto}.ca-page-head{display:flex;align-items:center;justify-content:space-between;gap:var(--ca-space-4);margin-bottom:var(--ca-space-8)}.ca-page-head h1{margin-top:var(--ca-space-2)}.ca-mobile-head,.ca-bottom-nav{display:none}.ca-button{min-height:44px;padding:10px 18px;display:inline-flex;align-items:center;justify-content:center;gap:var(--ca-space-3);font-size:var(--ca-size-small);font-weight:var(--ca-weight-medium);border:1px solid var(--ca-control-border);border-radius:var(--ca-radius-control);background:var(--ca-surface);transition:background 150ms,color 150ms}.ca-button:hover{background:var(--ca-bg)}.ca-button--primary{background:var(--ca-accent);color:var(--ca-on-accent);border-color:var(--ca-accent)}.ca-button--primary:hover{background:var(--ca-ink);border-color:var(--ca-ink)}.ca-button--quiet{border-color:transparent;background:transparent;padding:8px 0}.ca-icon-button{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--ca-line);border-radius:var(--ca-radius-control);background:var(--ca-surface)}.ca-card{background:var(--ca-surface);border:1px solid var(--ca-line);border-radius:var(--ca-radius-card);box-shadow:var(--ca-shadow);min-width:0}.ca-card-body{padding:var(--ca-space-6)}.ca-card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--ca-space-3);padding:var(--ca-space-6)}.ca-tag{display:inline-flex;align-items:center;gap:var(--ca-space-2);padding:4px 10px;border:1px solid var(--ca-line);border-radius:var(--ca-radius-small);font-size:var(--ca-size-label);white-space:nowrap;line-height:1.6}.ca-dot{height:6px;width:6px;display:inline-block;flex-shrink:0;border-radius:50%;background:currentColor}.ca-status{display:inline-flex;align-items:center;gap:var(--ca-space-2);font-size:var(--ca-size-small);white-space:nowrap}.ca-status--success{color:var(--ca-success)}.ca-status--warning{color:var(--ca-warning)}.ca-status--danger{color:var(--ca-danger)}.ca-tag--success{background:var(--ca-success-bg);border-color:transparent;color:var(--ca-success)}.ca-tag--warning{background:var(--ca-warning-bg);border-color:transparent;color:var(--ca-warning)}.ca-tag--danger{background:var(--ca-danger-bg);border-color:transparent;color:var(--ca-danger)}.ca-list{list-style:none;margin:0;padding:0}.ca-list-row{min-height:64px;display:flex;align-items:center;gap:var(--ca-space-4);padding:var(--ca-space-4) var(--ca-space-6);border-top:1px solid var(--ca-line)}.ca-list-copy{min-width:0;flex:1}.ca-list-copy p{overflow-wrap:anywhere}.ca-list-copy small{font-size:var(--ca-size-small);color:var(--ca-muted)}.ca-device-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--ca-radius-control);background:var(--ca-bg);color:var(--ca-ink);flex-shrink:0}.ca-tabs{display:flex;gap:var(--ca-space-6);border-bottom:1px solid var(--ca-line);padding:0 var(--ca-space-6)}.ca-tabs button{padding:0 0 14px;background:none;border:0;border-bottom:2px solid transparent;font-size:var(--ca-size-small);color:var(--ca-muted);min-height:44px}.ca-tabs button[aria-selected="true"]{color:var(--ca-accent);border-bottom-color:var(--ca-accent)}.ca-empty{padding:var(--ca-space-6);display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--ca-space-4)}.ca-empty-art{width:180px;height:96px;color:var(--ca-muted)}.ca-loading{display:flex;align-items:center;gap:var(--ca-space-4);padding:var(--ca-space-6);min-height:120px}.ca-loading svg{width:72px;height:40px;color:var(--ca-accent)}.ca-loading path{stroke-dasharray:18 80;animation:ca-pen 2s linear infinite}.ca-success{padding:var(--ca-space-6);border:1px solid var(--ca-success);border-radius:var(--ca-radius-card);background:var(--ca-success-bg);color:var(--ca-success);display:flex;align-items:center;gap:var(--ca-space-4)}.ca-success svg{width:28px;height:28px}.ca-success .ca-close-box{stroke-dasharray:100;stroke-dashoffset:0;animation:ca-close var(--ca-motion-success) ease-out both}.ca-motion{position:relative;isolation:isolate;overflow:hidden}.ca-motion>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.ca-motion-ready>img{display:none}.ca-palette{display:flex;gap:var(--ca-space-2);align-items:center}.ca-swatch{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--ca-control-border);background:var(--ca-surface);border-radius:var(--ca-radius-control)}.ca-swatch::after{content:"";width:16px;height:16px;background:var(--swatch);border-radius:50%}.ca-swatch[aria-pressed="true"]{outline:2px solid var(--ca-accent);outline-offset:2px}.ca-swatch--blue{--swatch:#3157C8}.ca-swatch--copper{--swatch:#914831}.ca-modal{max-width:440px;width:calc(100% - 40px);border:1px solid var(--ca-line);padding:var(--ca-space-8);border-radius:var(--ca-radius-card);color:var(--ca-text);background:var(--ca-surface);box-shadow:var(--ca-shadow-float)}.ca-modal::backdrop{background:#20262D44}.ca-modal .ca-button{margin-top:var(--ca-space-6)}
@keyframes ca-pen{to{stroke-dashoffset:-98}}@keyframes ca-close{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@media(max-width:760px){.ca-shell{display:block;padding-top:68px;padding-bottom:90px}.ca-sidebar{display:none}.ca-mobile-head{height:68px;position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;background:var(--ca-surface);border-bottom:1px solid var(--ca-line);padding:0 var(--ca-space-5)}.ca-mobile-head .ca-brand{font-size:var(--ca-size-brand)}.ca-main{padding:var(--ca-space-6) var(--ca-space-5)}.ca-page-head{margin-bottom:var(--ca-space-6)}.ca-page-head h1{font-size:var(--ca-size-title-mobile);margin:0}.ca-page-head>.ca-kicker,.ca-page-head>div>.ca-kicker{display:none}.ca-bottom-nav{position:fixed;z-index:20;bottom:0;left:0;right:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));padding:8px 12px max(12px,env(safe-area-inset-bottom));background:var(--ca-surface);border-top:1px solid var(--ca-line)}.ca-bottom-nav a{display:flex;align-items:center;flex-direction:column;gap:4px;min-height:48px;justify-content:center;font-size:var(--ca-size-label);color:var(--ca-muted)}.ca-bottom-nav a[aria-current="page"]{color:var(--ca-accent)}.ca-bottom-nav .ca-icon{width:22px;height:22px}.ca-card-head,.ca-card-body{padding:var(--ca-space-5)}.ca-card-head h2{font-size:var(--ca-size-card-mobile)}.ca-list-row{padding:var(--ca-space-4) var(--ca-space-5);gap:var(--ca-space-3)}.ca-tabs{padding:0 var(--ca-space-5)}.ca-list-copy{font-size:var(--ca-size-small)}.ca-list-row .ca-tag{padding:3px 7px}.ca-status{font-size:var(--ca-size-label)}.ca-palette{gap:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
