:root{--slate-1: #fcfcfd;--slate-2: #f9f9fb;--slate-3: #f0f0f3;--slate-4: #e8e8ec;--slate-5: #e0e1e6;--slate-6: #d9d9e0;--slate-7: #cdced6;--slate-8: #b9bbc6;--slate-9: #8b8d98;--slate-10: #80838d;--slate-11: #60646c;--slate-12: #1c2024;--blue-1: #fbfdff;--blue-2: #f4faff;--blue-3: #e6f4fe;--blue-4: #d5efff;--blue-5: #c2e5ff;--blue-6: #acd8fc;--blue-7: #8ec8f6;--blue-8: #5eb1ef;--blue-9: #0090ff;--blue-10: #0588f0;--blue-11: #0d74ce;--blue-12: #113264;--green-1: #fbfefc;--green-2: #f2fcf5;--green-3: #e6f8eb;--green-4: #d3f3df;--green-5: #bcf0d0;--green-6: #9fe4be;--green-7: #7bd2a6;--green-8: #4cb782;--green-9: #30a46c;--green-10: #299764;--green-11: #18794e;--green-12: #193b2d;--red-1: #fffcfc;--red-2: #fff7f7;--red-3: #feebec;--red-4: #ffdbdc;--red-5: #ffcdce;--red-6: #fdbdbf;--red-7: #f4a9ab;--red-8: #ec8e91;--red-9: #e5484d;--red-10: #dc3e42;--red-11: #ce2c31;--red-12: #641723;--amber-1: #fefdfb;--amber-2: #fefbe9;--amber-3: #fff7c2;--amber-4: #ffee9c;--amber-5: #ffe370;--amber-6: #f5d547;--amber-7: #e6c435;--amber-8: #d6b218;--amber-9: #ffc53d;--amber-10: #ffba18;--amber-11: #ab6400;--amber-12: #4f3422;--bg: var(--slate-1);--surface: var(--slate-2);--fill: var(--slate-3);--fill-hover: var(--slate-4);--fill-active: var(--slate-5);--line: var(--slate-6);--line-strong: var(--slate-7);--ink: var(--slate-12);--muted: var(--slate-11);--accent: var(--blue-9);--accent-hover: var(--blue-10);--accent-subtle: var(--blue-3);--accent-text: var(--blue-11);--success: var(--green-9);--success-subtle: var(--green-3);--success-text: var(--green-11);--danger: var(--red-9);--danger-subtle: var(--red-3);--danger-text: var(--red-11);--warning: var(--amber-9);--warning-subtle: var(--amber-3);--warning-text: var(--amber-11);--font-xs: 12px;--font-sm: 14px;--font-md: 18px;--font-lg: 24px;--lh-xs: 1.35;--lh-sm: 1.45;--lh-md: 1.3;--lh-lg: 1.2;--sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Icons", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--transition: .25s ease-out;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 14px;--radius-icon: 18px;color-scheme:light;font-family:var(--sans);font-size:var(--font-sm);line-height:var(--lh-sm);color:var(--ink);background:var(--bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}:root[data-theme=dark]{--slate-1: #111113;--slate-2: #18191b;--slate-3: #212225;--slate-4: #27282d;--slate-5: #2e3035;--slate-6: #36383e;--slate-7: #43454d;--slate-8: #575965;--slate-9: #696e79;--slate-10: #777b84;--slate-11: #9ba1a6;--slate-12: #ecedee;--blue-1: #0d1520;--blue-2: #111927;--blue-3: #0d2847;--blue-4: #003362;--blue-5: #004074;--blue-6: #104d87;--blue-7: #205d9e;--blue-8: #2870bd;--blue-9: #0090ff;--blue-10: #3b9eff;--blue-11: #70b8ff;--blue-12: #c2e6ff;--green-1: #0d1912;--green-2: #102016;--green-3: #123120;--green-4: #133924;--green-5: #17492e;--green-6: #1c5d3b;--green-7: #247349;--green-8: #2d8e5b;--green-9: #30a46c;--green-10: #3cb179;--green-11: #4cc38a;--green-12: #e2fbe8;--red-1: #191111;--red-2: #201314;--red-3: #3b1219;--red-4: #500f1c;--red-5: #611623;--red-6: #72232d;--red-7: #8c333a;--red-8: #b54548;--red-9: #e5484d;--red-10: #ec5d5e;--red-11: #ff9592;--red-12: #ffd1d9;--amber-1: #16120c;--amber-2: #1d180f;--amber-3: #2b200c;--amber-4: #3a2a07;--amber-5: #4a3600;--amber-6: #5c4300;--amber-7: #735400;--amber-8: #946c00;--amber-9: #ffc53d;--amber-10: #ffd60a;--amber-11: #ffca16;--amber-12: #ffe7b3;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--slate-1: #111113;--slate-2: #18191b;--slate-3: #212225;--slate-4: #27282d;--slate-5: #2e3035;--slate-6: #36383e;--slate-7: #43454d;--slate-8: #575965;--slate-9: #696e79;--slate-10: #777b84;--slate-11: #9ba1a6;--slate-12: #ecedee;--blue-1: #0d1520;--blue-2: #111927;--blue-3: #0d2847;--blue-4: #003362;--blue-5: #004074;--blue-6: #104d87;--blue-7: #205d9e;--blue-8: #2870bd;--blue-9: #0090ff;--blue-10: #3b9eff;--blue-11: #70b8ff;--blue-12: #c2e6ff;--green-1: #0d1912;--green-2: #102016;--green-3: #123120;--green-4: #133924;--green-5: #17492e;--green-6: #1c5d3b;--green-7: #247349;--green-8: #2d8e5b;--green-9: #30a46c;--green-10: #3cb179;--green-11: #4cc38a;--green-12: #e2fbe8;--red-1: #191111;--red-2: #201314;--red-3: #3b1219;--red-4: #500f1c;--red-5: #611623;--red-6: #72232d;--red-7: #8c333a;--red-8: #b54548;--red-9: #e5484d;--red-10: #ec5d5e;--red-11: #ff9592;--red-12: #ffd1d9;--amber-1: #16120c;--amber-2: #1d180f;--amber-3: #2b200c;--amber-4: #3a2a07;--amber-5: #4a3600;--amber-6: #5c4300;--amber-7: #735400;--amber-8: #946c00;--amber-9: #ffc53d;--amber-10: #ffd60a;--amber-11: #ffca16;--amber-12: #ffe7b3;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%}::selection{background:var(--blue-4);color:var(--ink)}:focus{outline:none}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}h1,h2,h3,h4,p,ul,ol{margin:0}a{color:inherit;text-decoration:none;transition:color var(--transition)}button,input,select,textarea{font:inherit;color:inherit}img,svg,video{display:block;max-width:100%}[hidden]{display:none!important}.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip{position:absolute;left:16px;top:8px;transform:translateY(-140%);background:var(--ink);color:var(--bg);padding:6px 12px;border-radius:var(--radius-md);font-size:var(--font-xs);z-index:50;transition:transform var(--transition)}.skip:focus{transform:none}.bar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:18px;height:52px;padding:0 24px;background:var(--bg);border-bottom:.5px solid var(--line)}@supports (backdrop-filter: blur(20px)) or (-webkit-backdrop-filter: blur(20px)){.bar{background:color-mix(in srgb,var(--bg) 85%,transparent);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}}.wordmark{font-size:var(--font-sm);font-weight:600;letter-spacing:-.01em;color:var(--ink)}.nav{display:flex;align-items:center;gap:16px;margin-left:12px;font-size:var(--font-sm);color:var(--muted)}.nav a:hover,.nav a.active{color:var(--ink)}.search{margin-left:auto}.search input{width:220px;height:32px;padding:0 12px;font-size:var(--font-sm);border-radius:var(--radius-md);background:var(--fill);border:.5px solid var(--line);color:var(--ink);transition:border-color var(--transition),background-color var(--transition)}.search input:focus{border-color:var(--blue-8);background:var(--bg)}.search input::placeholder{color:var(--muted)}.theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--fill);color:var(--muted);cursor:pointer;padding:0;transition:background-color var(--transition),color var(--transition)}.theme-toggle-btn:hover{background:var(--fill-hover);color:var(--ink)}.theme-toggle-btn .theme-icon-sun{display:none}.theme-toggle-btn .theme-icon-moon{display:block}:root[data-theme=dark] .theme-toggle-btn .theme-icon-sun{display:block!important;color:var(--amber-9)}:root[data-theme=dark] .theme-toggle-btn .theme-icon-moon{display:none!important}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-toggle-btn .theme-icon-sun{display:block;color:var(--amber-9)}:root:not([data-theme=light]) .theme-toggle-btn .theme-icon-moon{display:none}}.user-bar{display:flex;align-items:center}.nav-auth-btn{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--fill);font-size:var(--font-xs);font-weight:500;color:var(--ink);cursor:pointer;transition:background-color var(--transition)}.nav-auth-btn:hover{background:var(--fill-hover)}.nav-user-profile{display:flex;align-items:center;gap:8px}.nav-profile-link{display:flex;align-items:center;gap:8px;padding:2px 8px 2px 2px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--fill);color:var(--ink);font-size:var(--font-xs);font-weight:500}.nav-profile-link:hover{background:var(--fill-hover)}.user-avatar-sm{width:24px;height:24px;border-radius:5px;display:grid;place-items:center;background:var(--blue-9);color:#fff;font-size:var(--font-xs);font-weight:600}.nav-logout-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--fill);color:var(--muted);cursor:pointer;padding:0;transition:color var(--transition),background-color var(--transition)}.nav-logout-btn:hover{background:var(--fill-hover);color:var(--danger-text)}.wrap{width:min(1140px,calc(100% - 48px));margin:0 auto;padding:32px 0 64px}.crumbs{font-size:var(--font-xs);color:var(--muted);margin-bottom:8px}.crumbs a:hover{color:var(--ink)}.page-head h1{font-size:var(--font-lg);font-weight:600;line-height:var(--lh-lg);letter-spacing:-.015em;color:var(--ink)}.page-head p{margin-top:6px;font-size:var(--font-sm);color:var(--muted)}.home-head{margin-bottom:24px}.home-head-row{margin-bottom:16px}.home-title{font-size:var(--font-lg);font-weight:600;line-height:var(--lh-lg);letter-spacing:-.015em;color:var(--ink)}.home-sub{margin-top:4px;font-size:var(--font-sm);color:var(--muted)}.cat-pills{display:flex;gap:6px;flex-wrap:wrap}.cat-pill{padding:5px 12px;border-radius:var(--radius-md);font-size:var(--font-xs);font-weight:500;color:var(--muted);background:var(--fill);border:.5px solid var(--line);transition:background-color var(--transition),color var(--transition)}.cat-pill:hover{color:var(--ink);background:var(--fill-hover)}.cat-pill.active{color:#fff;background:var(--slate-12);border-color:var(--slate-12)}.index{list-style:none;padding:0;margin:20px 0 0;display:grid;grid-template-columns:1fr 1fr;column-gap:36px}.row{display:grid;grid-template-columns:80px minmax(0,1fr);gap:16px;align-items:start;padding:14px 8px;border-bottom:.5px solid var(--line);border-radius:var(--radius-lg);transition:background-color var(--transition)}.row:hover{background:var(--surface)}.row-logo{flex:none}.logo{width:80px;height:80px;border-radius:var(--radius-icon);background:var(--fill);display:grid;place-items:center;overflow:hidden;border:.5px solid var(--line)}.logo img{width:100%;height:100%;object-fit:cover;border-radius:calc(var(--radius-icon) - .5px)}.logo.sm{width:40px;height:40px;border-radius:9px}.logo.sm img{border-radius:8.5px}.logo.lg{width:96px;height:96px;border-radius:20px}.logo.lg img{border-radius:19.5px}.logo-letter{font-size:var(--font-lg);font-weight:600;color:var(--muted)}.logo.sm .logo-letter{font-size:var(--font-xs)}.row-copy{min-width:0}.row-top-line{display:flex;align-items:center;gap:8px;margin-bottom:2px}.row-cat-link{font-size:var(--font-xs);color:var(--muted)}.row-cat-link:hover{color:var(--ink)}.row-featured-badge{font-size:var(--font-xs);font-weight:500;padding:1px 6px;border-radius:var(--radius-sm);background:var(--amber-3);color:var(--amber-11);border:.5px solid var(--amber-7)}.row-name{display:inline-flex;align-items:baseline;gap:6px;flex-wrap:wrap}.row-name-text{font-size:var(--font-sm);font-weight:600;color:var(--ink)}.row-ver-tag{font-size:var(--font-xs);color:var(--muted);font-family:var(--mono)}.row-sum{margin-top:4px;font-size:var(--font-xs);line-height:var(--lh-xs);color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.row-footer{margin-top:6px}.row-meta{font-size:var(--font-xs);color:var(--muted)}.pager{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:36px}.pager a,.pager-gap{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;padding:0 8px;border-radius:var(--radius-md);font-size:var(--font-xs);font-weight:500;border:.5px solid var(--line);background:var(--fill);color:var(--muted)}.pager a:hover{color:var(--ink);background:var(--fill-hover)}.pager a[aria-current=page]{background:var(--slate-12);color:var(--slate-1);border-color:var(--slate-12)}.pager-gap{border:none;background:transparent}.home-shelves{margin-top:48px;display:flex;flex-direction:column;gap:40px}.shelf-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.shelf-title{font-size:var(--font-md);font-weight:600;color:var(--ink)}.shelf-all-link,.view-all-guides{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-xs);color:var(--muted)}.shelf-all-link:hover,.view-all-guides:hover{color:var(--ink)}.shelf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.shelf-card{display:flex;align-items:center;gap:12px;padding:10px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface);transition:background-color var(--transition)}.shelf-card:hover{background:var(--fill)}.shelf-card-icon{flex:none}.shelf-card-meta{min-width:0;display:flex;flex-direction:column;gap:2px}.shelf-card-cat{font-size:var(--font-xs);color:var(--muted)}.shelf-card-name{font-size:var(--font-sm);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shelf-card-ver{font-size:var(--font-xs);color:var(--muted);font-family:var(--mono)}.home-editorial{margin-top:48px;padding-top:32px;border-top:.5px solid var(--line)}.home-editorial-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.home-editorial-title{font-size:var(--font-md);font-weight:600;color:var(--ink)}.home-editorial-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.editorial-articles-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.home-editorial-card,.editorial-card{display:flex;flex-direction:column;min-width:0;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface);overflow:hidden;transition:background-color var(--transition)}.home-editorial-card:hover,.editorial-card:hover{background:var(--fill)}.home-editorial-cover,.editorial-card-cover{display:block;width:100%;aspect-ratio:16 / 9;background:var(--fill);overflow:hidden;border-bottom:.5px solid var(--line)}.home-editorial-cover img,.editorial-card-cover img{width:100%;height:100%;max-width:100%;object-fit:cover;display:block}.home-editorial-body,.editorial-card-body{padding:14px 16px;display:flex;flex-direction:column;gap:6px;min-width:0;flex:1}.home-editorial-meta,.editorial-card-meta{display:flex;align-items:center;gap:8px;font-size:var(--font-xs);color:var(--muted)}.editorial-badge-pill,.editorial-tag{display:inline-flex;align-items:center;padding:1px 6px;border-radius:var(--radius-sm);background:var(--fill);border:.5px solid var(--line);font-size:var(--font-xs);font-weight:500;color:var(--muted)}.home-editorial-item-title,.editorial-card-title{font-size:var(--font-sm);font-weight:600;color:var(--ink);line-height:var(--lh-sm)}.home-editorial-desc,.editorial-card-sum{font-size:var(--font-xs);line-height:var(--lh-xs);color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.home-editorial-link,.read-more-link{display:inline-flex;align-items:center;gap:4px;margin-top:auto;padding-top:8px;font-size:var(--font-xs);font-weight:500;color:var(--blue-11)}.home-editorial-link:hover,.read-more-link:hover{color:var(--blue-10);text-decoration:underline}.detail{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;align-items:start}.app-hero{display:flex;gap:24px;align-items:flex-start;padding-bottom:28px;border-bottom:.5px solid var(--line)}.app-hero-main{min-width:0;flex:1}.app-hero-badges{display:flex;gap:6px;align-items:center;margin-bottom:8px}.badge-cat,.badge-featured{display:inline-flex;align-items:center;padding:2px 8px;font-size:var(--font-xs);font-weight:500;border-radius:var(--radius-sm);border:.5px solid var(--line);background:var(--fill);color:var(--muted)}.badge-featured{background:var(--amber-3);color:var(--amber-11);border-color:var(--amber-7)}.app-hero-title{font-size:var(--font-lg);font-weight:600;line-height:var(--lh-lg);letter-spacing:-.015em;color:var(--ink)}.app-hero-ver{font-weight:400;color:var(--muted);font-family:var(--mono);font-size:var(--font-md);margin-left:6px}.app-hero-summary{margin-top:8px;font-size:var(--font-sm);line-height:var(--lh-sm);color:var(--muted)}.app-hero-cta{margin-top:18px}.article-downloads{display:flex;flex-wrap:wrap;gap:8px}.dl-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 14px;border-radius:var(--radius-md);background:var(--surface);border:.5px solid var(--line);color:var(--ink);transition:background-color var(--transition)}.dl-btn:hover{background:var(--fill)}.dl-icon-wrap{width:28px;height:28px;border-radius:var(--radius-sm);display:grid;place-items:center;flex:none}.dl-icon{width:15px;height:15px}.dl-rg .dl-icon-wrap{background:var(--amber-3);border:.5px solid var(--amber-7);color:var(--amber-11)}.dl-nf .dl-icon-wrap{background:var(--red-3);border:.5px solid var(--red-7);color:var(--red-11)}.dl-generic .dl-icon-wrap{background:var(--green-3);border:.5px solid var(--green-7);color:var(--green-11)}.dl-copy{display:flex;flex-direction:column}.dl-title{font-size:var(--font-xs);font-weight:600}.dl-note{font-size:var(--font-xs);color:var(--muted)}.article-compat{margin-top:12px;display:inline-flex;align-items:center;gap:6px;font-size:var(--font-xs);color:var(--muted)}.compat-icon{width:14px;height:14px;flex:none}.compat-label{font-weight:500;color:var(--ink)}.compat-val{color:var(--muted)}.app-specs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:24px;padding:14px 18px;background:var(--surface);border-radius:var(--radius-lg);border:.5px solid var(--line)}.spec-item{display:flex;flex-direction:column;gap:2px}.spec-label{font-size:var(--font-xs);color:var(--muted)}.spec-val{font-size:var(--font-sm);font-weight:500;color:var(--ink);word-break:break-word}.article-body{margin-top:32px}.article-body h2,.shots h2,.article-log h2{font-size:var(--font-md);font-weight:600;color:var(--ink);margin-bottom:12px}.article-prose{font-size:var(--font-sm);line-height:1.6;color:var(--ink)}.article-prose p{margin-bottom:12px}.article-prose ul,.article-prose ol{margin:0 0 12px 20px;padding:0}.article-prose li{margin-bottom:4px}.article-prose h3,.article-prose h4{font-size:var(--font-sm);font-weight:600;margin:16px 0 6px}.shots{margin-top:32px}.shots-grid{display:grid;gap:16px}.mac-window{border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface);overflow:hidden}.mac-window-bar{display:flex;align-items:center;gap:6px;padding:8px 12px;background:var(--fill);border-bottom:.5px solid var(--line)}.mac-dot{width:10px;height:10px;border-radius:50%}.dot-red{background:#ff5f56}.dot-yellow{background:#ffbd2e}.dot-green{background:#27c93f}.mac-window-title{margin-left:6px;font-size:var(--font-xs);color:var(--muted)}.mac-window-content{margin:0}.mac-window-content img{display:block;width:100%;height:auto}.article-log{margin-top:32px}.log-timeline{display:flex;flex-direction:column;gap:12px}.log-card{padding:14px 16px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface)}.log-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.log-badge{font-size:var(--font-xs);font-weight:600;font-family:var(--mono);color:var(--ink)}.log-time{font-size:var(--font-xs);color:var(--muted)}.log-notes{list-style:none;padding:0;display:flex;flex-direction:column;gap:4px}.log-notes li{font-size:var(--font-xs);line-height:var(--lh-xs);color:var(--muted);display:flex;gap:6px}.note-bullet{color:var(--slate-8)}.history-downloads-card{margin-top:20px;padding:14px 16px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface)}.history-downloads-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.history-downloads-title-wrap{display:flex;align-items:center;gap:6px}.history-downloads-title-wrap h3{font-size:var(--font-sm);font-weight:600;color:var(--ink)}.history-badge{font-size:var(--font-xs);color:var(--muted)}.history-list{display:flex;flex-direction:column;gap:8px}.history-row{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:var(--radius-md);background:var(--fill);border:.5px solid var(--line)}.history-row-meta{display:flex;align-items:center;gap:8px}.history-ver-tag{font-size:var(--font-xs);font-weight:600;font-family:var(--mono)}.history-date{font-size:var(--font-xs);color:var(--muted)}.history-row-links{display:flex;gap:6px}.history-dl-link{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:var(--radius-sm);background:var(--surface);border:.5px solid var(--line);font-size:var(--font-xs);color:var(--ink)}.history-dl-link:hover{background:var(--fill-hover)}.history-expand-btn{margin-top:10px;width:100%;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--fill);font-size:var(--font-xs);color:var(--muted);cursor:pointer}.history-expand-btn:hover{color:var(--ink);background:var(--fill-hover)}.star-rating-bar{display:flex;align-items:center;gap:6px;margin:6px 0 10px}.stars-picker{display:flex;gap:2px}.star-item{background:none;border:none;padding:0;font-size:var(--font-sm);color:var(--slate-7);cursor:pointer;line-height:1;transition:color var(--transition)}.star-item.filled{color:var(--amber-9)}.rating-score{font-size:var(--font-xs);font-weight:600;color:var(--ink);margin-left:2px}.rating-count-pill{font-size:var(--font-xs);color:var(--muted)}.user-rated-feedback{font-size:var(--font-xs);color:var(--green-11);font-weight:500;margin-left:4px}.engagement-bar{margin-top:24px;padding-top:16px;border-top:.5px solid var(--line)}.engagement-buttons{display:flex;align-items:center;gap:8px}.fav-btn,.share-btn{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--surface);font-size:var(--font-xs);font-weight:500;color:var(--ink);cursor:pointer;transition:background-color var(--transition)}.fav-btn:hover,.share-btn:hover{background:var(--fill)}.fav-btn.active{background:var(--red-3);border-color:var(--red-7);color:var(--red-11)}.fav-btn.active svg{fill:var(--red-9)}.share-toast{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-xs);color:var(--green-11);font-weight:500;margin-left:8px}.reviews-section{margin-top:36px;padding-top:24px;border-top:.5px solid var(--line)}.reviews-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.reviews-title-wrap{display:flex;align-items:center;gap:8px}.reviews-title-wrap h2{font-size:var(--font-md);font-weight:600;color:var(--ink)}.reviews-count{display:inline-flex;align-items:center;padding:1px 7px;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:600;background:var(--fill);color:var(--muted);border:.5px solid var(--line)}.reviews-empty{padding:16px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface);font-size:var(--font-xs);color:var(--muted);margin-bottom:20px}.reviews-list{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.review-card{display:flex;gap:12px;padding:14px 16px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface)}.review-avatar{width:32px;height:32px;border-radius:6px;display:grid;place-items:center;color:#fff;font-weight:600;font-size:var(--font-xs);flex:none}.review-main{min-width:0;flex:1}.review-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.review-author{font-size:var(--font-xs);font-weight:600;color:var(--ink)}.review-verified{font-size:var(--font-xs);color:var(--muted)}.review-date{font-size:var(--font-xs);color:var(--muted);margin-left:auto}.review-content p{font-size:var(--font-xs);line-height:var(--lh-xs);color:var(--ink)}.review-form-card{padding:16px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface)}.review-form-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.review-form-header h3{font-size:var(--font-sm);font-weight:600;color:var(--ink)}.review-form-desc{font-size:var(--font-xs);color:var(--muted);margin-top:2px}.review-login-prompt{display:flex;flex-direction:column;align-items:center;text-align:center;padding:20px 16px;gap:10px}.prompt-icon{color:var(--muted)}.review-login-prompt p{font-size:var(--font-xs);color:var(--muted)}.prompt-actions{display:flex;gap:8px}.prompt-btn-primary{padding:6px 14px;border-radius:var(--radius-md);background:var(--slate-12);color:var(--slate-1);border:.5px solid var(--slate-12);font-size:var(--font-xs);font-weight:500;cursor:pointer}.prompt-btn-secondary{padding:6px 14px;border-radius:var(--radius-md);background:var(--fill);border:.5px solid var(--line);color:var(--ink);font-size:var(--font-xs);font-weight:500;cursor:pointer}.form-group{display:flex;flex-direction:column;gap:4px}.form-group label{font-size:var(--font-xs);font-weight:500;color:var(--ink)}.form-group textarea{width:100%;padding:10px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--bg);color:var(--ink);font-size:var(--font-xs);line-height:var(--lh-xs);resize:vertical}.form-actions{display:flex;align-items:center;gap:8px;margin-top:10px}.submit-review-btn{padding:6px 14px;border-radius:var(--radius-md);background:var(--slate-12);color:var(--slate-1);border:.5px solid var(--slate-12);font-size:var(--font-xs);font-weight:500;cursor:pointer;transition:opacity var(--transition)}.submit-review-btn:disabled{opacity:.6;cursor:not-allowed}.form-status{font-size:var(--font-xs);font-weight:500}.side{display:flex;flex-direction:column;gap:28px}.side-featured-card{padding:14px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface)}.ad-label{font-size:var(--font-xs);font-weight:600;color:var(--ink);margin-bottom:12px}.side-featured-grid{display:grid;grid-template-columns:repeat(4,54px);gap:10px;justify-content:center}.side-featured-item{display:block;width:54px;height:54px}.side-featured-item .logo{width:54px;height:54px;border-radius:13px}.side-featured-item .logo img{border-radius:12.5px}.side-block h2{font-size:var(--font-sm);font-weight:600;color:var(--ink);margin-bottom:10px}.side-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px}.side-list a{display:flex;align-items:center;gap:10px;padding:6px 8px;border-radius:var(--radius-md);transition:background-color var(--transition)}.side-list a:hover{background:var(--surface)}.side-list strong{display:block;font-size:var(--font-xs);font-weight:600;color:var(--ink)}.side-list small{display:block;font-size:var(--font-xs);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:190px}.auth-modal-backdrop{position:fixed;inset:0;z-index:100;background:#0006;display:grid;place-items:center;padding:16px}@supports (backdrop-filter: blur(10px)) or (-webkit-backdrop-filter: blur(10px)){.auth-modal-backdrop{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}}.auth-modal-card{position:relative;width:min(380px,100%);background:var(--bg);border:.5px solid var(--line);border-radius:var(--radius-xl);padding:20px}.auth-modal-close{position:absolute;top:14px;right:14px;background:none;border:none;font-size:var(--font-md);color:var(--muted);cursor:pointer;padding:0;line-height:1}.auth-modal-close:hover{color:var(--ink)}.auth-tabs{display:flex;gap:4px;background:var(--fill);padding:3px;border-radius:var(--radius-md);border:.5px solid var(--line);margin-bottom:14px}.auth-tab{flex:1;padding:6px 0;background:none;border:none;border-radius:calc(var(--radius-md) - 3px);font-size:var(--font-xs);font-weight:500;color:var(--muted);cursor:pointer;transition:background-color var(--transition),color var(--transition)}.auth-tab.active{background:var(--bg);color:var(--ink);font-weight:600}.auth-title{font-size:var(--font-md);font-weight:600;color:var(--ink);margin-bottom:14px}.auth-form{display:flex;flex-direction:column;gap:12px}.auth-error{padding:8px 10px;border-radius:var(--radius-md);background:var(--red-3);border:.5px solid var(--red-7);color:var(--red-11);font-size:var(--font-xs)}.auth-field{display:flex;flex-direction:column;gap:4px}.auth-field label{font-size:var(--font-xs);font-weight:500;color:var(--ink)}.auth-field input{height:34px;padding:0 10px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--fill);color:var(--ink);font-size:var(--font-xs)}.auth-field input:focus{border-color:var(--blue-8);background:var(--bg)}.auth-hint{font-size:var(--font-xs);color:var(--muted)}.auth-submit-btn{height:34px;margin-top:4px;border-radius:var(--radius-md);background:var(--slate-12);color:var(--slate-1);border:.5px solid var(--slate-12);font-size:var(--font-xs);font-weight:500;cursor:pointer;transition:opacity var(--transition)}.auth-submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-switch-note{margin-top:8px;text-align:center;font-size:var(--font-xs);color:var(--muted)}.auth-switch-btn{background:none;border:none;color:var(--blue-11);font-weight:500;cursor:pointer;padding:0;text-decoration:underline}.profile-page{max-width:680px}.profile-guest-card{padding:32px 24px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface);text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.guest-icon{color:var(--muted)}.profile-guest-card h2{font-size:var(--font-md);font-weight:600;color:var(--ink)}.profile-guest-card p{font-size:var(--font-sm);color:var(--muted);max-width:360px}.profile-signin-btn{height:34px;padding:0 16px;border-radius:var(--radius-md);background:var(--slate-12);color:var(--slate-1);border:.5px solid var(--slate-12);font-size:var(--font-xs);font-weight:500;cursor:pointer}.profile-header-card{display:flex;align-items:center;gap:16px;padding:16px 20px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface);margin-bottom:20px}.profile-avatar-large{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:var(--blue-9);color:#fff;font-size:var(--font-md);font-weight:600;flex:none}.profile-header-info{min-width:0;flex:1}.profile-name-row{display:flex;align-items:center;gap:8px}.profile-username{font-size:var(--font-md);font-weight:600;color:var(--ink)}.profile-badge{font-size:var(--font-xs);padding:1px 6px;border-radius:var(--radius-sm);background:var(--slate-3);border:.5px solid var(--line);color:var(--muted)}.profile-member-since{font-size:var(--font-xs);color:var(--muted);margin-top:2px}.profile-signout-btn{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--fill);font-size:var(--font-xs);color:var(--muted);cursor:pointer}.profile-signout-btn:hover{color:var(--danger-text);background:var(--fill-hover)}.profile-tabs{display:flex;gap:6px;margin-bottom:16px}.profile-tab{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:var(--radius-md);border:.5px solid var(--line);background:var(--surface);font-size:var(--font-xs);font-weight:500;color:var(--muted);cursor:pointer}.profile-tab.active{background:var(--slate-12);color:var(--slate-1);border-color:var(--slate-12)}.tab-count{padding:1px 6px;border-radius:var(--radius-sm);background:var(--fill);font-size:var(--font-xs);color:inherit}.favs-empty{padding:24px;text-align:center;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface);font-size:var(--font-xs);color:var(--muted)}.fav-item-row{grid-template-columns:54px minmax(0,1fr);gap:12px;padding:10px 8px}.fav-item-row .logo{width:54px;height:54px;border-radius:12px}.fav-row-top{display:flex;align-items:center;justify-content:space-between}.remove-fav-btn{display:inline-flex;align-items:center;gap:4px;background:none;border:none;font-size:var(--font-xs);color:var(--muted);cursor:pointer;padding:0}.remove-fav-btn:hover{color:var(--danger-text)}.password-form-card{padding:18px 20px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface)}.password-form-card h3{font-size:var(--font-sm);font-weight:600;color:var(--ink);margin-bottom:2px}.panel-desc{font-size:var(--font-xs);color:var(--muted);margin-bottom:14px}.password-form{display:flex;flex-direction:column;gap:12px}.password-status{padding:8px 10px;border-radius:var(--radius-md);font-size:var(--font-xs)}.password-status.error{background:var(--red-3);border:.5px solid var(--red-7);color:var(--red-11)}.password-status.success{background:var(--green-3);border:.5px solid var(--green-7);color:var(--green-11)}.search-empty-box{margin-top:24px;padding:24px;border-radius:var(--radius-lg);border:.5px solid var(--line);background:var(--surface);color:var(--muted);font-size:var(--font-sm);text-align:center}.colophon{margin-top:48px;padding:24px 0;border-top:.5px solid var(--line);text-align:center;font-size:var(--font-xs);color:var(--muted);display:flex;flex-direction:column;gap:6px}.colophon a:hover{color:var(--ink)}.colophon-note{margin-left:8px}@media(max-width:900px){.index{grid-template-columns:1fr;column-gap:0}.detail{grid-template-columns:1fr}.side{margin-top:24px}.shelf-grid{grid-template-columns:1fr 1fr}.home-editorial-grid,.editorial-articles-grid{grid-template-columns:1fr}.app-specs{grid-template-columns:1fr 1fr}}@media(max-width:640px){.wrap{width:calc(100% - 32px);padding:20px 0 48px}.bar{padding:0 16px;gap:12px}.nav{display:none}.app-hero{flex-direction:column;gap:16px}.shelf-grid,.home-editorial-grid,.editorial-articles-grid{grid-template-columns:1fr}.search input{width:140px}input,textarea,select{font-size:16px!important}}
