/* AI好物集 / Toolora — shared brand system, 2026-10. Palette values remain user-selectable. */
@font-face {font-family:TooloraWenKai;src:url('assets/fonts/wenkai-title.woff2') format('woff2');font-display:swap;}
:root {
  --brand-body: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  --brand-display: TooloraWenKai, "Songti SC", Georgia, serif;
  --brand-radius: 14px;
  --brand-control-radius: 9px;
  --brand-ease: cubic-bezier(.2,.65,.3,1);
}
body {font-family:var(--brand-body)!important; letter-spacing:0; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;}
html:lang(ja) body {font-family:Inter,"Yu Gothic","Hiragino Kaku Gothic ProN",Meiryo,sans-serif!important;}
html:lang(ko) body {font-family:Inter,"Apple SD Gothic Neo","Malgun Gothic",sans-serif!important;}
button,input,select,textarea {font-family:inherit;}
::selection {background:var(--p-soft);color:var(--p-ink);}
:where(a,button,summary,select,input,textarea):focus-visible {outline:2px solid var(--p-accent)!important;outline-offset:4px;border-radius:4px;}
a {text-underline-offset:4px;}
.brand.toolora-brand {width:156px;}
.brand.toolora-brand .brand-secondary {font-family:var(--brand-body);font-size:9px;letter-spacing:1.5px;opacity:.8;}
.brand.toolora-brand .brand-lockup-international .brand-primary {width:138px;}
.topbar {gap:20px;padding-inline:28px;}
.searchbar {height:42px;border-radius:var(--brand-control-radius);padding-inline:13px;max-width:600px;}
.searchbar input {font-size:13px;line-height:1.5;}
.searchbar kbd {font-size:10px;padding:3px 5px;border-radius:4px;}
.searchbar>span {font-family:var(--brand-body);}
.language-select {font-size:12px;min-height:34px;border-radius:var(--brand-control-radius);}
.top-actions {gap:8px;}
.top-actions button[data-view] {padding:9px 11px!important;font-size:12px;border-radius:var(--brand-control-radius);font-weight:500;transition:background .16s var(--brand-ease);}
.top-actions button[data-view].active {background:var(--p-soft)!important;color:var(--p-accent)!important;box-shadow:none!important;}
.top-actions button[data-view]:hover {background:var(--p-paper);}
.top-actions #add {font-size:11px;padding:10px 13px;border-radius:var(--brand-control-radius);}
.sidebar-title {font-size:11px;font-weight:600;letter-spacing:.1em;margin-bottom:17px;}
.category-list {gap:5px;}
.category-btn {font-size:12px;padding:11px 12px;border-radius:var(--brand-control-radius);line-height:1.55;}
.category-btn small {font-size:10px;font-variant-numeric:tabular-nums;}
.category-btn.active {font-weight:600;}
.category-children {border-color:var(--p-border);}
.category-children .category-btn {font-size:11px;padding-block:10px;}
.sidebar-bottom {font-size:11px;line-height:1.8;}
.sidebar-bottom strong {font-size:23px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-1px;}
.main {padding:28px 30px 32px;}
.page-heading {margin-bottom:25px!important;}
.title-line {gap:11px;align-items:baseline;}
.title-line h1 {font-family:var(--brand-display)!important;font-size:29px!important;line-height:1.45!important;font-weight:500;letter-spacing:0!important;}
.title-line #count {font-family:var(--brand-body);font-variant-numeric:tabular-nums;font-size:12px!important;}
.sort-wrap select {border-radius:var(--brand-control-radius)!important;min-height:34px!important;font-size:11px!important;}
.group-label {padding-bottom:10px;margin-bottom:15px;border-bottom:1px solid var(--p-border);}
.group-label h2 {font-family:var(--brand-display);font-size:24px;font-weight:500;letter-spacing:0;}
.group-label small {font-size:11px;font-variant-numeric:tabular-nums;}
.tool-section {margin-bottom:34px;}
.tool-grid {gap:15px;}
.card {border-radius:var(--brand-radius);padding:19px 18px 13px;min-height:185px;transition:border-color .18s var(--brand-ease),box-shadow .18s var(--brand-ease),transform .18s var(--brand-ease);}
.card:hover {transform:translateY(-2px);box-shadow:0 6px 18px #20273509!important;}
.card:focus-within {border-color:var(--p-hover)!important;}
.tool-title {gap:12px;align-items:center;min-width:0;}
.tool-title .logo {width:43px;height:43px;border-radius:11px;flex-shrink:0;border:1px solid var(--p-border);background:var(--p-surface);}
.tool-title .brand-icon {width:29px;height:29px;object-fit:contain;}
.tool-names {min-width:0;}
.tool-names h3,.card h3 {font-family:var(--brand-body)!important;font-size:15px;font-weight:600;line-height:1.4;letter-spacing:-.15px;white-space:normal;overflow-wrap:anywhere;}
.tool-names .type,.tool-names .company-subtitle {font-family:var(--brand-body);font-size:10px;line-height:1.6;margin-top:4px;}
.card .card-desc {font-family:var(--brand-body)!important;font-size:13px;line-height:1.85;margin:14px 0 15px;display:block!important;-webkit-line-clamp:unset!important;line-clamp:unset!important;max-height:none!important;overflow:visible!important;min-height:0;}
.cardfoot {padding-top:11px;gap:9px;min-height:31px;align-items:center;}
.badge {font-size:10px;padding:3px 7px;border-radius:5px;font-weight:500;line-height:1.5;}
.visit,.cardfoot a {font-size:11px;line-height:1.5;text-decoration:none;}
.visit:hover {text-decoration:underline;}
.cardfoot .badge::before {display:none;}
.theme-picker>summary {border-radius:var(--brand-control-radius);}
.theme-picker-panel {border-radius:12px;box-shadow:0 12px 36px #20273512;}
.theme-brand-link {display:block;padding:10px 9px 3px;font-size:11px;line-height:1.6;color:var(--p-text)!important;}
/* Product dossiers use the same surfaces and type hierarchy as the directory. */
.profile-header,.info-header {border-bottom-color:var(--p-border);}
.profile-header nav a {font-size:12px;}
.profile-header .brand.toolora-brand {width:148px;}
.breadcrumbs {font-size:12px;line-height:1.7;margin-block:25px;}
.profile-hero {padding:20px 0 30px;gap:28px;}
.profile-logo {width:86px;height:86px;border-radius:21px;border:1px solid var(--p-border);background:var(--p-surface);box-shadow:0 3px 12px #20273505;}
.profile-logo img {width:60px;height:60px;object-fit:contain;}
.profile-hero h1 {font-family:var(--brand-body)!important;font-size:39px;line-height:1.2;font-weight:650;letter-spacing:-1.1px;margin:10px 0 14px;}
.hero-summary {font-family:var(--brand-body);font-size:14px!important;line-height:1.9;max-width:780px;}
.eyebrow {font-family:var(--brand-body);font-size:10px;letter-spacing:.08em;}
.hero-company {font-size:12px;line-height:1.7;}
.hero-company .status {font-size:10px;}
.button {border-radius:var(--brand-control-radius);font-size:12px;padding:11px 16px;font-weight:500;}
.profile-tabs {gap:30px;padding-block:17px;margin-bottom:25px;}
.profile-tabs a {font-size:13px;font-weight:500;}
.section {border-radius:var(--brand-radius);padding:28px;margin-bottom:22px;border-color:var(--p-border);box-shadow:none;}
.section-title h2,.related-title {font-family:var(--brand-display)!important;font-size:25px;font-weight:500;letter-spacing:0;}
.section-index {font-size:10px;letter-spacing:.09em;font-variant-numeric:tabular-nums;}
.section p {font-size:14px;line-height:1.95;}
.section-title {margin-bottom:20px;}
.usage-guide,.company-extra,.dataset-profile {border-radius:11px;padding:20px;background:var(--p-paper)!important;border-color:var(--p-border);}
.usage-guide h3,.company-extra h3,.dataset-profile h3 {font-family:var(--brand-body)!important;font-size:15px;font-weight:600;}
.usage-guide dl>div,.company-extra dl>div {grid-template-columns:105px minmax(0,1fr);gap:20px;padding:15px 0;}
.usage-guide dt,.company-extra dt {font-size:12px;line-height:1.8;}
.usage-guide dd p,.company-extra dd {font-size:13px!important;line-height:1.9;}
.usage-guide dd a,.company-extra dd small {font-size:11px;}
.facts-card {border-radius:var(--brand-radius);padding:23px;border-color:var(--p-border);}
.facts-card h3 {font-family:var(--brand-body)!important;font-size:15px;font-weight:600;}
.fact {padding-block:13px;}
.fact dt {font-size:11px;line-height:1.7;}
.fact dd {font-size:12px;line-height:1.8;}
.company-field small {font-size:11px;}
.company-field strong,.company-field a {font-size:13px;line-height:1.8;}
.company-note {font-size:12px!important;}
.source-link {font-size:12px;padding-block:12px;}
.product-news-meta {font-size:11px;}
.product-news-item h3 {font-family:var(--brand-body)!important;font-size:17px;font-weight:600;line-height:1.65;}
.product-news-item p {font-size:13px!important;}
.product-news-meta time {color:var(--p-muted)!important;}
.related-card {border-radius:11px;padding:16px;gap:12px;}
.related-card strong {font-family:var(--brand-body)!important;font-size:13px;color:var(--p-ink)!important;}
.related-card span {font-size:11px;line-height:1.5;color:var(--p-muted)!important;}
.profile-footer,.info-footer {font-family:var(--brand-body);font-size:11px;line-height:1.8;}
/* Reading and information pages remain visually part of the same publication. */
.reader-hero h1,.info-heading h1 {font-family:var(--brand-display)!important;font-size:36px;letter-spacing:0;}
.reader-hero>p {font-size:14px;line-height:1.9;}
.reader-eyebrow,.info-eyebrow {font-size:10px;letter-spacing:.12em;}
.reader-card {border-radius:var(--brand-radius);}
.info-document h2 {font-size:18px;line-height:1.6;}
.info-page-nav a {border-radius:var(--brand-control-radius);}
.info-contact {border-radius:var(--brand-radius);}
html:not(:lang(zh)) .title-line h1,html:not(:lang(zh)) .group-label h2,html:not(:lang(zh)) .section-title h2,html:not(:lang(zh)) .reader-hero h1,html:not(:lang(zh)) .info-heading h1 {font-family:Georgia,"Times New Roman",serif!important;}
html:lang(ja) :is(.title-line h1,.group-label h2,.section-title h2,.reader-hero h1,.info-heading h1),html:lang(ko) :is(.title-line h1,.group-label h2,.section-title h2,.reader-hero h1,.info-heading h1) {font-family:inherit!important;font-weight:600;}
@media(min-width:721px) {
 .sidebar {width:212px;padding:24px 13px;}
 .main {margin-left:212px;}
}
@media(min-width:721px) and (max-width:1100px) {
 .topbar {gap:10px;padding-inline:18px;}
 .topbar .brand.toolora-brand {width:126px;}
 .topbar .brand-lockup-international .brand-primary {width:120px;}
 .top-actions {gap:3px;}
 .top-actions button[data-view] {font-size:11px;padding:8px 6px!important;}
 .top-actions #add {padding:9px 8px;font-size:10px;}
 .language-select {max-width:85px;font-size:11px;}
 .main {padding:24px;}
 .sidebar {width:190px;}
 .main {margin-left:190px;}
 .card {padding:17px 15px 12px;}
}
@media(max-width:720px) {
 .brand.toolora-brand {width:144px;}
 .brand.toolora-brand .brand-lockup-international .brand-primary {width:128px;}
 .topbar {gap:10px;padding-inline:16px;}
 .searchbar {height:42px;}
 .searchbar input {font-size:13px;}
 .top-actions button[data-view] {font-size:12px;padding:7px 10px!important;}
 .top-actions #add {font-size:11px;}
 .category-btn {font-size:12px;}
 .category-children .category-btn {font-size:11px;}
 .main {padding:24px 16px;}
 .title-line h1 {font-size:27px!important;}
 .tool-grid {gap:12px;}
 .card {padding:17px 16px 13px;min-height:0;}
 .card .card-desc {font-size:13px;line-height:1.85;}
 .tool-names h3 {font-size:15px;}
 .group-label h2 {font-size:23px;}
 .tool-section {margin-bottom:28px;}
 .profile-header .brand.toolora-brand {width:132px;}
 .profile-hero h1 {font-size:30px;letter-spacing:-.7px;}
 .profile-logo {width:66px;height:66px;border-radius:16px;}
 .profile-logo img {width:46px;height:46px;}
 .hero-summary {font-size:13px!important;}
 .hero-company {font-size:11px;}
 .hero-actions .button {font-size:12px;padding:11px 12px;}
 .breadcrumbs {font-size:11px;margin-block:19px;}
 .profile-tabs {gap:22px;}
 .profile-tabs a {font-size:12px;}
 .section {padding:22px 18px;}
 .section p {font-size:13px;}
 .section-title h2 {font-size:23px;}
 .usage-guide,.company-extra,.dataset-profile {padding:16px;}
 .usage-guide dl>div,.company-extra dl>div {grid-template-columns:1fr;gap:5px;}
 .company-field strong,.company-field a {font-size:12px;}
 .related-card {padding:13px;}
 .related-card strong {font-size:12px;}
 .reader-hero h1,.info-heading h1 {font-size:30px;}
}
@media(prefers-reduced-motion:reduce) {
 *,*::before,*::after {scroll-behavior:auto!important;transition:none!important;animation:none!important;}
 .card:hover {transform:none;}
}

/* Functional typography polish — shared across all palette tokens and six languages. */
html:lang(ja){--brand-body:-apple-system,BlinkMacSystemFont,"Segoe UI","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif}
html:lang(ko){--brand-body:-apple-system,BlinkMacSystemFont,"Segoe UI","Apple SD Gothic Neo","Malgun Gothic",sans-serif}
html:lang(ja) body,html:lang(ko) body{font-family:var(--brand-body)!important}
html .title-line h1,html .group-label h2,html .section-title h2,html .related-title,html .reader-hero h1,html .info-heading h1,
html:not(:lang(zh)) :is(.title-line h1,.group-label h2,.section-title h2,.reader-hero h1,.info-heading h1){font-family:var(--brand-body)!important;font-weight:600;letter-spacing:0}
.title-line h1{font-size:26px!important;line-height:1.35!important}
.group-label{align-items:center}
.group-label h2{font-size:20px;line-height:1.45;margin-block:0}
.group-label small,.title-line #count{font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:0}
.group-label .view-all{font-family:var(--brand-body);font-weight:500;line-height:1.5}
.tool-names h3,.card h3{font-size:15px;font-weight:600;line-height:1.45;letter-spacing:0;word-break:normal}
.tool-names .type,.tool-names .company-subtitle{font-size:11px;line-height:1.5;font-weight:400;color:var(--p-muted)!important}
.card .card-desc{font-size:13px;line-height:1.8;font-weight:400;letter-spacing:0;word-break:normal;overflow-wrap:break-word}
.sidebar .category-btn{font-weight:400;letter-spacing:0;line-height:1.5}
.sidebar .category-btn.active{font-weight:600}
.sidebar-title{letter-spacing:0;font-weight:500}
.searchbar input{font-size:13px;letter-spacing:0}
.language-select{font-weight:500;line-height:1.4}
.badge,.visit,.cardfoot a{font-family:var(--brand-body);letter-spacing:0}
.profile-hero h1{letter-spacing:0;line-height:1.3;font-weight:600}
.section-title h2,.related-title{font-size:22px;line-height:1.45}
.hero-summary,.section p{line-height:1.85}
@media(max-width:720px){.title-line h1{font-size:24px!important}.group-label h2{font-size:19px}.section-title h2,.related-title{font-size:20px}.profile-hero h1{letter-spacing:0}.card .card-desc{line-height:1.8}}
/* End functional typography polish */

/* Narrow-screen controls use explicit rows, never viewport clipping. */
@media(max-width:720px){
 .topbar{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:center;width:100%;box-sizing:border-box}
 .topbar>.brand{grid-column:1;grid-row:1;min-width:0;max-width:100%}
 .topbar>.language-control{grid-column:2;grid-row:1;justify-self:end}
 .topbar>.searchbar{grid-column:1/-1;grid-row:2;min-width:0;max-width:none;width:auto}
 .topbar>.searchbar input{min-width:0;width:100%}
 .topbar>.top-actions{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;min-width:0;gap:8px}
 .topbar .top-actions button,.topbar .top-actions #add{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.5}
 .main,.tool-section,.tool-grid,.card,.cardhead,.cardfoot,.group-label{min-width:0;max-width:100%;box-sizing:border-box}
 .tool-section{width:100%}.group-label{flex-wrap:wrap;row-gap:8px}
 .tool-grid{grid-template-columns:1fr!important}.cardfoot{flex-wrap:wrap}
}
