:root{--bg:#05090d;--surface:#0a0f14;--surface-raised:#0f141a;--text-base:#e8ecf1;--text-muted:#8896a8;--text-brand:#54d7ea;--border-base:#1a2230;--border-subtle:#111820;--radius:12px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;font-family:Space Grotesk,system-ui,-apple-system,sans-serif;line-height:1.5}a{color:var(--text-brand);text-decoration:none}a:hover{text-decoration:underline}.shell{max-width:960px;margin:0 auto;padding:0 24px}.nav{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding:18px 0;display:flex}.nav-brand{letter-spacing:.04em;color:var(--text-base);align-items:center;gap:10px;font-weight:700;text-decoration:none;display:flex}.nav-brand img{width:28px;height:28px}.nav-links{align-items:center;gap:24px;display:flex}.nav-links a{color:var(--text-muted);font-size:14px;transition:color .2s}.nav-links a:hover{color:var(--text-base);text-decoration:none}.hero-heading{margin-top:80px;margin-bottom:8px}.hero-heading h1{letter-spacing:-.03em;margin:0;font-size:clamp(32px,5vw,52px);line-height:1.1}.hero-sub{color:var(--text-muted);margin-bottom:48px;font-size:18px}.card{background:var(--surface);border:1px solid var(--border-base);border-radius:var(--radius);padding:28px}.section-title{letter-spacing:-.02em;margin:0 0 16px;font-size:20px;font-weight:600}.section-sub{color:var(--text-muted);margin:0 0 20px;font-size:14px}.rating-stars{gap:6px;display:inline-flex}.star-btn{cursor:pointer;background:0 0;border:none;padding:2px;line-height:0}.star-btn svg{fill:#1a2230;stroke:#8896a8;stroke-width:1.5px;width:28px;height:28px;transition:fill .15s,stroke .15s}.star-btn.active svg,.star-btn:hover svg{fill:#f0b429;stroke:#f0b429}.form-group{margin-bottom:20px}.form-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:8px;font-size:13px;font-weight:600;display:block}.form-input,.form-textarea{border:1px solid var(--border-base);background:var(--bg);width:100%;color:var(--text-base);border-radius:8px;padding:12px 14px;font-family:inherit;font-size:15px;transition:border-color .2s}.form-input:focus,.form-textarea:focus{border-color:var(--text-brand);outline:none}.form-textarea{resize:vertical;min-height:120px}.btn{border:1px solid var(--border-base);background:var(--surface);color:var(--text-base);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:12px 22px;font-size:14px;font-weight:600;transition:background .2s,border-color .2s;display:inline-flex}.btn:hover{background:var(--surface-raised);border-color:#2a3345}.btn-primary{background:var(--text-base);color:var(--bg);border-color:var(--text-base)}.btn-primary:hover{background:#fff;border-color:#fff}.btn:disabled{opacity:.5;cursor:not-allowed}.message{border:1px solid #0000;border-radius:8px;margin-top:12px;padding:12px 14px;font-size:14px}.message-info{color:var(--text-brand);background:#8cb4ff14;border-color:#8cb4ff33}.message-success{color:#2ed573;background:#2ed57314;border-color:#2ed57333}.message-error{color:#ff6b6b;background:#ff6b6b14;border-color:#ff6b6b33}.message-warning{color:#ffc107;background:#ffc10714;border-color:#ffc10733}.review-card{border-bottom:1px solid var(--border-subtle);grid-template-columns:44px minmax(0,1fr);gap:14px;padding:22px 0;display:grid}.review-card:last-child{border-bottom:none}.review-avatar{color:#fff;background:linear-gradient(135deg,#4a6cf7,#9b51e0);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:17px;font-weight:700;display:flex}.review-body{min-width:0}.review-header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:2px;display:flex}.review-author{overflow-wrap:anywhere;font-size:15px;font-weight:600}.review-date{color:var(--text-muted);white-space:nowrap;font-size:12px}.review-stars{gap:3px;margin:4px 0 8px;display:flex}.review-stars svg{fill:#f0b429;stroke:none;width:16px;height:16px}.review-text{color:var(--text-base);white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.55}.review-actions{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.btn-danger{color:#ff6b6b;border-color:#ff6b6b59}.btn-danger:hover{background:#ff6b6b14;border-color:#ff6b6b}.rating-summary{background:var(--surface);border:1px solid var(--border-base);border-radius:var(--radius);grid-template-columns:minmax(180px,230px) minmax(0,1fr);align-items:center;gap:36px;margin-bottom:36px;padding:28px;display:grid}.rating-overview{text-align:center;border-right:1px solid var(--border-subtle);padding-right:36px}.rating-average{letter-spacing:-.04em;font-size:64px;font-weight:700;line-height:1}.rating-stars-summary{justify-content:center;gap:4px;margin:12px 0 8px;display:flex}.rating-stars-summary svg{fill:#f0b429;stroke:none;width:22px;height:22px}.rating-count{color:var(--text-muted);font-size:14px}.rating-distribution{gap:9px;display:grid}.distribution-row{grid-template-columns:34px minmax(0,1fr) 42px;align-items:center;gap:10px;font-size:13px;display:grid}.distribution-label{color:var(--text-muted);white-space:nowrap}.distribution-bar-outer{background:var(--border-subtle);border-radius:4px;height:8px;overflow:hidden}.distribution-bar-inner{background:linear-gradient(90deg,#f0b429,#ffb300);border-radius:4px;height:100%}.distribution-percent{color:var(--text-muted);text-align:right;font-variant-numeric:tabular-nums}.status-badge{letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.status-badge.published{color:#2ed573;background:#2ed5731f;border:1px solid #2ed57333}.status-badge.pending{color:#ffc107;background:#ffc1071f;border:1px solid #ffc10733}.status-badge.rejected{color:#ff6b6b;background:#ff6b6b1f;border:1px solid #ff6b6b33}.status-badge.unknown{color:var(--text-muted);background:#8896a81f;border:1px solid #8896a833}@media (width<=640px){.shell{padding:0 16px}.hero-heading{margin-top:48px}.rating-summary{grid-template-columns:1fr;gap:20px}.rating-overview{border-right:none;border-bottom:1px solid var(--border-subtle);padding:0 0 20px}.nav-links{gap:14px}}
