:root{--ink:#17243b;--muted:#748095;--line:#e5eaf2;--accent:#2563eb}body{font:15px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;color:var(--ink);background:#f8faff}a{text-decoration:none;color:inherit}a:hover{color:var(--accent)}.container-wide{width:min(1280px,calc(100% - 64px));margin:auto}.site-header{background:#fff;border-bottom:1px solid var(--line)}.site-header .container-wide{height:76px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:650}.brand img{width:36px;height:36px}.header-link{font-size:14px;color:#576680}.directory-hero{max-width:750px;margin:68px auto 46px;text-align:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:650;color:var(--accent)}.directory-hero h1{font-size:40px;font-weight:700;letter-spacing:-1px;margin:14px 0 16px}.directory-hero p{color:var(--muted);font-size:16px;margin-bottom:28px}.directory-search{display:flex;gap:10px;background:#fff;padding:7px;border:1px solid #dbe3ef;border-radius:10px;box-shadow:0 6px 18px #17243b05}.directory-search input{width:100%;border:0;background:transparent;padding:9px 14px;outline:none;color:var(--ink)}.directory-search:focus-within{border-color:#7ba6fb;box-shadow:0 0 0 3px #2563eb12}.directory-search button,.visit-website{border:0;background:var(--accent);color:#fff;border-radius:7px;padding:10px 25px;white-space:nowrap}.visit-website:hover{background:#1d4ed8;color:#fff}.category-nav{display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--line);padding-bottom:26px}.category-nav a{display:flex;align-items:center;gap:8px;font-size:14px;padding:7px 16px;background:#fff;border:1px solid var(--line);border-radius:7px}.category-nav a span{font-size:11px;color:#8c98aa}.category-nav a.selected{background:#eaf2ff;border-color:#cadafa;color:var(--accent)}.list-heading{display:flex;align-items:center;justify-content:space-between;margin:30px 0 22px}.list-heading h2,.related-title{font-size:21px;font-weight:650;margin:0}.list-heading>span{font-size:13px;color:var(--muted)}.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.tool-card{background:#fff;border:1px solid var(--line);border-radius:11px;overflow:hidden;transition:transform .18s,box-shadow .18s}.tool-card:hover{transform:translateY(-3px);box-shadow:0 12px 35px #20385b09}.tool-card-cover{display:block;aspect-ratio:16/9;background:#eef2f8;overflow:hidden}.tool-card-cover img{width:100%;height:100%;object-fit:cover}.tool-card-body{padding:21px}.tool-card-name{display:flex;align-items:center;gap:11px}.tool-card-name img{border-radius:8px;object-fit:contain}.tool-card-name h3{font-size:17px;font-weight:650;margin:0}.tool-card-body>p{font-size:13px;line-height:1.8;color:#728096;margin:15px 0 20px;min-height:47px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.tool-card-meta{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#8792a4}.tool-card-meta>a{color:#4c73ab}.directory-empty{grid-column:1/-1;background:#fff;border:1px dashed var(--line);border-radius:12px;text-align:center;padding:80px 20px}.directory-empty h2{font-size:20px}.directory-empty p{color:var(--muted);margin:12px 0}.directory-pagination{display:flex;justify-content:center;margin:36px 0}.site-footer{margin-top:70px;padding:26px 0;border-top:1px solid var(--line);font-size:12px;color:#8d98aa}.site-footer .container-wide{display:flex;justify-content:space-between;gap:20px}.detail-breadcrumb{display:flex;gap:12px;font-size:12px;color:#8390a5;margin:28px 0}.tool-detail-hero{display:grid;grid-template-columns:1fr 1.1fr;gap:65px;align-items:center;background:#fff;border:1px solid var(--line);padding:40px;border-radius:13px}.detail-logo{width:60px;height:60px;border-radius:12px;object-fit:contain}.tool-detail-hero h1{font-size:36px;font-weight:700;margin:17px 0 14px}.tool-detail-hero p{font-size:15px;color:#748095;margin-bottom:25px}.detail-cover{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:9px;background:#eef2f8}.visit-website{display:inline-block}.detail-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:24px}.detail-tags a{font-size:12px;color:#7586a0;background:#f3f6fb;padding:3px 10px;border-radius:5px}.detail-columns{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;margin-top:40px}.detail-content,.detail-information{background:#fff;border:1px solid var(--line);border-radius:10px;padding:32px}.detail-content{font-size:15px;line-height:1.95;overflow-wrap:anywhere}.detail-content h2{font-size:23px;font-weight:650;margin:32px 0 16px}.detail-content h2:first-child{margin-top:0}.detail-content img{max-width:100%;height:auto}.detail-information{align-self:start;padding:24px}.detail-information h2{font-size:17px;font-weight:650;margin-bottom:24px}.detail-information dl{font-size:13px}.detail-information dt{font-weight:400;color:#8a95a6;margin-bottom:4px}.detail-information dd{margin-bottom:18px;overflow-wrap:anywhere}.detail-information p{font-size:12px;color:#95a0b0;margin:25px 0 0}.related-title{margin:45px 0 24px}@media(min-width:1500px){.tool-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1000px){.tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tool-detail-hero{gap:30px;padding:26px}.detail-columns{grid-template-columns:minmax(0,1fr) 240px;gap:22px}.container-wide{width:calc(100% - 40px)}}@media(max-width:640px){.container-wide{width:calc(100% - 30px)}.site-header .container-wide{height:64px}.brand{font-size:18px}.directory-hero{margin:42px auto 30px}.directory-hero h1{font-size:30px}.directory-hero p{font-size:14px}.category-nav{flex-wrap:nowrap;overflow-x:auto;white-space:nowrap;padding-bottom:18px}.tool-grid{gap:13px}.tool-card-body{padding:13px}.tool-card-name{gap:7px}.tool-card-name h3{font-size:14px}.tool-card-name img{width:27px;height:27px}.tool-card-body>p{font-size:12px;min-height:43px;margin:12px 0}.tool-card-meta{font-size:10px}.tool-card-meta>span{display:none}.tool-detail-hero{grid-template-columns:1fr;padding:22px}.tool-detail-hero h1{font-size:29px}.detail-columns{grid-template-columns:1fr}.detail-content{padding:23px}.detail-information{display:none}.site-footer .container-wide{flex-direction:column;gap:5px}.header-link{font-size:12px}}

.taxonomy-hero{max-width:1024px;display:grid;grid-template-columns:minmax(0,1fr) 260px;align-items:center;gap:38px;text-align:left}.taxonomy-hero h1{font-size:34px}.taxonomy-cover{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:10px;background:#eef2f8}.tag-nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:20px 0;font-size:12px;color:var(--muted)}.tag-nav a{padding:4px 10px;border:1px solid var(--line);border-radius:5px;background:#fff}.tag-nav a[aria-current=page]{color:var(--accent);border-color:#cadafa}@media(max-width:640px){.taxonomy-hero{grid-template-columns:1fr;gap:22px;text-align:center}.taxonomy-cover{max-width:300px;justify-self:center}.taxonomy-hero h1{font-size:30px}.category-nav{scrollbar-width:thin}.detail-breadcrumb{overflow-wrap:anywhere}}

/* Members and reviews */
.header-actions{display:flex;align-items:center;gap:24px}.header-account{display:flex;align-items:center;gap:8px;max-width:220px}.header-name{max-width:150px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.member-avatar{width:42px;height:42px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eaf1ff;color:#2563eb;font-size:18px;font-weight:600;flex-shrink:0}.member-avatar--small{width:30px;height:30px;font-size:14px}.site-notice{background:#eaf3ff;border:1px solid #ccddfa;border-radius:9px;padding:14px 20px;margin-top:24px;color:#194a9f}.site-notice--error{background:#fff4f3;color:#a33029;border-color:#f4d4d0}.member-auth{max-width:450px;margin:44px auto 72px}.member-back{display:inline-block;color:#6b7b90;font-size:14px;margin-bottom:20px}.member-card{border:1px solid var(--line);border-radius:12px;background:#fff;padding:30px}.member-card h1{font-size:27px;font-weight:650;margin:0 0 14px}.member-card h2{font-size:19px;font-weight:650;margin:0 0 24px}.member-subtitle{color:#6c7d93;font-size:14px;margin-bottom:28px}.member-form-line{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:13px;margin-bottom:24px}.member-form-line .form-check{margin:0}.member-card a:not(.btn){color:var(--accent)}.member-card .form-label{font-size:14px}.member-card .form-control{min-height:43px}.member-form-end{margin:24px 0 0;text-align:center;color:#6c7d93;font-size:14px}.form-control:focus,.form-select:focus{box-shadow:0 0 0 3px #2563eb12;border-color:#8bb1fa}.btn-primary{--bs-btn-bg:#2563eb;--bs-btn-border-color:#2563eb;--bs-btn-hover-bg:#1d4ed8;--bs-btn-hover-border-color:#1d4ed8}.account-heading{display:flex;align-items:center;justify-content:space-between;margin:32px 0 24px}.account-heading h1{font-size:28px;margin:0}.account-heading .member-back{margin-bottom:12px}.account-grid{display:grid;grid-template-columns:340px minmax(0,1fr);gap:24px}.account-grid aside{display:flex;flex-direction:column;gap:20px}.account-grid .member-card{padding:25px}.account-reviews{align-self:start}.account-review{padding:20px 0;border-bottom:1px solid var(--line)}.account-review:first-of-type{padding-top:0}.account-review:last-of-type{border:0}.account-review-top{display:flex;align-items:center;gap:14px;justify-content:space-between;margin-bottom:8px}.account-review-top>a{font-size:16px;font-weight:600}.account-review-bottom{display:flex;justify-content:space-between;align-items:center;color:#8290a2;font-size:12px;margin-top:18px}.account-review-bottom>div{display:flex;gap:18px;align-items:center}.account-review-bottom form{display:inline}.account-review-bottom .btn-link{padding:0;font-size:13px;text-decoration:none}.account-delete summary{font-size:14px;color:#6e7d90;cursor:pointer}.reviews-panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:30px;margin:32px 0 44px;scroll-margin-top:24px}.reviews-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.reviews-heading h2{font-size:23px;font-weight:650;margin:0}.reviews-heading>span{color:#8390a1;font-size:13px}.rating-overview{display:grid;grid-template-columns:210px minmax(0,1fr);gap:40px;border:1px solid var(--line);border-radius:10px;background:linear-gradient(120deg,#f6f9ff,#fff 65%);padding:28px;margin-bottom:25px}.rating-average{display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.rating-average strong{font-size:50px;line-height:1.2;font-weight:700;letter-spacing:-1.5px}.rating-average>div>span{font-size:14px;color:#8a96aa}.rating-average .no-rating{font-size:24px;letter-spacing:0}.rating-average p{font-size:13px;color:#8390a1;margin:10px 0 0}.rating-stars{color:#dbe3ef;letter-spacing:3px;font-size:24px;margin-top:6px}.rating-stars .filled,.review-item-stars .filled{color:var(--accent)}.rating-distribution{display:flex;flex-direction:column;gap:9px;justify-content:center}.rating-bar{display:flex;align-items:center;gap:12px;font-size:12px;color:#78869b}.rating-bar>span:first-child{min-width:30px}.rating-bar>span:last-child{min-width:22px;text-align:right}.rating-track{height:8px;flex:1;background:#edf2fb;border-radius:10px;overflow:hidden}.rating-track>span{display:block;height:100%;background:#6a96f0;border-radius:10px}.review-login{display:flex;align-items:center;gap:14px;padding:19px;border:1px dashed #cddcfa;border-radius:10px;margin-bottom:28px}.review-login p,.review-author p{color:#8793a5;font-size:13px;margin:3px 0 0}.review-login strong,.review-author strong{font-size:14px;font-weight:600}.review-login-action{margin-left:auto;color:var(--accent);font-size:14px}.review-author{display:flex;gap:12px;align-items:center;margin-bottom:16px}.review-editor{border:1px solid var(--line);border-radius:10px;padding:22px;margin-bottom:24px}.rating-input{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:0 0 16px}.rating-input legend{float:none;width:auto;font-size:13px;margin:0}.star-options{display:flex;gap:5px}.star-options label{position:relative;cursor:pointer;font-size:28px;color:#cbd6e7;line-height:1.4}.star-options input{position:absolute;inset:0;opacity:0;cursor:pointer}.star-options label.is-active{color:var(--accent)}.star-options label:focus-within{outline:2px solid #80a9fa;outline-offset:3px;border-radius:3px}.rating-selected{font-size:12px;color:#77879f}.review-editor textarea{font-size:14px;resize:vertical;min-height:90px}.review-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:15px}.review-editor-footer small{color:#8390a1;font-size:12px}.review-editor-footer button{white-space:nowrap}.review-status{font-size:13px;color:#8e6b23;background:#fff9e9;padding:9px 12px;border-radius:6px}.review-item{padding:24px 0;border-top:1px solid var(--line)}.review-item-head{display:flex;align-items:center;gap:12px}.review-item-head strong{font-size:14px}.review-item-head time{margin-left:auto;color:#91a0b2;font-size:12px}.review-item-stars{font-size:17px;color:#d8e1ed;letter-spacing:1px}.review-comment{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.85;margin:15px 0 0}.reviews-empty{text-align:center;padding:44px 16px;color:#8794a7;border-top:1px solid var(--line)}.reviews-empty>span{font-size:34px;color:#8cacf0}.reviews-empty>p{margin:10px 0 20px;font-size:14px}.tool-card-rating{display:block;font-size:13px;color:#2563eb;margin:-4px 0 12px}.rating-count{font-size:12px;color:#8995a8}.review-list:empty{display:none}
@media(max-width:767px){.header-actions{gap:14px}.header-actions>.header-link{display:none}.header-name{max-width:100px}.member-auth{margin:28px auto 40px}.member-card{padding:24px}.account-grid{grid-template-columns:1fr}.account-heading h1{font-size:24px}.reviews-panel{padding:20px 16px}.rating-overview{grid-template-columns:105px minmax(0,1fr);gap:14px;padding:18px 14px}.rating-average strong{font-size:38px}.rating-average .no-rating{font-size:19px}.rating-average p{font-size:11px}.rating-stars{font-size:17px;letter-spacing:1px}.rating-bar{gap:7px}.review-editor{padding:16px}.review-editor-footer{align-items:flex-start;gap:10px}.review-editor-footer small{max-width:60%}.review-editor-footer .btn{font-size:13px}.review-login{gap:10px;padding:16px 12px}.review-login-action{font-size:12px}.review-login p{font-size:12px}.review-item-head time{font-size:11px}.rating-input{gap:9px}.reviews-heading h2{font-size:21px}}

.header-submit{font-size:14px;color:#576680;white-space:nowrap}.header-submit:hover{color:var(--accent)}.submission-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:36px 0 26px}.submission-heading h1{font-size:28px;margin:0 0 10px;font-weight:650}.submission-heading p{font-size:14px;color:#748095;margin:0}.submission-heading .member-back{margin-bottom:16px}.submission-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:start}.submission-layout .member-card{padding:30px}.submission-tool-title{display:flex;align-items:flex-end;gap:16px}.submission-tool-title>div{flex:1;min-width:0}.submission-tool-title img{width:48px;height:48px;object-fit:contain;border:1px solid var(--line);border-radius:9px;background:#fff;margin-bottom:0}.submission-guide{padding:26px 8px;color:#748095;font-size:14px}.submission-guide h2{font-size:17px;color:var(--ink);margin:0 0 18px;font-weight:600}.submission-guide ul{padding-left:19px;margin-bottom:24px}.submission-guide li{margin-bottom:14px}.submission-guide>a{color:var(--accent)}.submission-history{margin-top:32px;scroll-margin-top:24px}.submission-history .reviews-heading{margin-bottom:12px}.submission-history .reviews-heading h2{margin:0}.submission-history-item{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:22px 0;border-top:1px solid var(--line)}.submission-history-main{min-width:0}.submission-history-main>strong{font-size:15px;overflow-wrap:anywhere;margin-right:10px}.submission-domain{color:#8a96a7;font-size:12px;margin-top:8px;overflow-wrap:anywhere}.submission-history-action{flex-shrink:0;font-size:13px;color:var(--accent)}.submission-note{font-size:13px;color:#826224;background:#fff9ed;padding:8px 12px;border-radius:6px;margin:12px 0 0;overflow-wrap:anywhere}.review-item-head>div,.review-author>div{min-width:0}.review-item-head strong,.review-author strong{overflow-wrap:anywhere}.review-item-head time{flex-shrink:0}
@media(max-width:767px){.submission-layout{grid-template-columns:1fr;gap:14px}.submission-heading{align-items:flex-start;margin:26px 0 22px;gap:12px}.submission-heading h1{font-size:24px}.submission-heading> a{margin-top:38px;white-space:nowrap;font-size:12px}.submission-layout .member-card{padding:22px 18px}.submission-guide{padding:14px 6px}.submission-guide li{margin-bottom:9px}.submission-history{padding:22px 18px}.submission-history-item{gap:12px}.submission-heading p{font-size:13px}.submission-history-action{font-size:12px}.submission-tool-title{gap:12px}.submission-tool-title img{width:43px;height:43px}.submission-tool-title .form-control{min-height:43px}.account-heading{align-items:flex-start}}
@media(max-width:420px){.site-header .brand{font-size:18px;gap:8px}.site-header .brand img{width:30px;height:30px}.header-actions{gap:12px}.header-actions .btn-sm{font-size:12px;padding:6px 9px}.header-submit{font-size:13px}.header-name{max-width:70px}}
