:root{--bg: #121317;--bg-alt: #1a1c22;--panel: #1f2129;--border: #2c2f3a;--text: #e7e9ee;--text-dim: #9aa0ac;--accent: #6c8cff;--accent-dim: #45568f;--danger: #e05656;--ok: #4caf7d;font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app-shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1.5rem;background:var(--bg-alt);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}.brand{font-size:1.25rem;font-weight:700;color:var(--text)}.brand:hover{text-decoration:none;color:var(--accent)}.global-search{display:flex;gap:.5rem;flex:1;max-width:480px}.global-search input{flex:1;padding:.5rem .75rem;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text)}.global-search button,button,.btn{padding:.5rem 1rem;border-radius:6px;border:1px solid var(--border);background:var(--accent-dim);color:#fff;cursor:pointer;font-size:.9rem}button:hover,.btn:hover{background:var(--accent)}.btn.secondary{background:var(--panel)}.btn.secondary:hover{background:var(--border)}.btn.danger{background:#5b2323;border-color:#7a2f2f}.btn.danger:hover{background:var(--danger)}.content{flex:1;padding:1.5rem;max-width:1400px;width:100%;margin:0 auto}.footer{text-align:center;padding:1rem;color:var(--text-dim);font-size:.8rem}h1,h2,h3{margin-top:0}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.toolbar .left,.toolbar .right{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}input[type=text],input[type=number],input[type=date],textarea,select{padding:.5rem .65rem;border-radius:6px;border:1px solid var(--border);background:var(--panel);color:var(--text);font-size:.9rem}textarea{width:100%;font-family:inherit}label{display:block;font-size:.8rem;color:var(--text-dim);margin-bottom:.25rem;margin-top:.75rem}.platform-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.platform-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.25rem;text-align:center;transition:transform .15s,border-color .15s}.platform-card:hover{transform:translateY(-2px);border-color:var(--accent);text-decoration:none}.platform-card .name{font-weight:600;font-size:1.05rem;margin-bottom:.35rem}.platform-card .meta{color:var(--text-dim);font-size:.8rem}.game-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.1rem}.game-tile{cursor:pointer;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden;transition:transform .15s,border-color .15s}.game-tile:hover{transform:translateY(-3px);border-color:var(--accent)}.game-tile .cover{width:100%;aspect-ratio:3/4;object-fit:cover;background:#0d0e12;display:block}.game-tile .cover.placeholder{display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:.75rem;text-align:center;padding:.5rem}.game-tile .title{padding:.5rem .6rem;font-size:.85rem;font-weight:500;line-height:1.2}.game-tile .sub{padding:0 .6rem .6rem;font-size:.75rem;color:var(--text-dim)}.game-table{width:100%;border-collapse:collapse;background:var(--panel);border-radius:8px;overflow:hidden}.game-table th,.game-table td{padding:.55rem .75rem;border-bottom:1px solid var(--border);text-align:left;font-size:.85rem}.game-table th{color:var(--text-dim);font-weight:600;background:var(--bg-alt)}.game-table tr.game-row{cursor:pointer}.game-table tr.game-row:hover{background:var(--bg-alt)}.game-table .thumb{width:40px;height:54px;object-fit:cover;border-radius:3px;background:#0d0e12}.view-toggle button.active{background:var(--accent)}.game-detail-header{display:flex;gap:1.5rem;flex-wrap:wrap;margin-bottom:1.5rem}.game-images{display:flex;gap:.75rem;flex-wrap:wrap}.game-images figure{margin:0;text-align:center}.game-images img{width:160px;height:213px;object-fit:cover;border-radius:8px;border:1px solid var(--border);background:#0d0e12}.game-images figcaption{font-size:.75rem;color:var(--text-dim);margin-top:.3rem}.game-images .empty{width:160px;height:213px;display:flex;align-items:center;justify-content:center;border:1px dashed var(--border);border-radius:8px;color:var(--text-dim);font-size:.75rem}.game-info h1{margin-bottom:.25rem}.game-info .platform-link{color:var(--text-dim)}.section{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.3rem;margin-bottom:1.1rem}.section h3{border-bottom:1px solid var(--border);padding-bottom:.5rem;margin-bottom:.75rem;font-size:1rem;color:var(--accent)}.field-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.75rem 1.5rem}.field-grid .field .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-dim)}.field-grid .field .v{font-size:.92rem;word-break:break-word}.actions-row{display:flex;gap:.6rem;flex-wrap:wrap;margin:1rem 0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:0 1.5rem}.form-actions{margin-top:1.5rem;display:flex;gap:.6rem}.badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.72rem;background:var(--accent-dim);color:#fff}.badge.ok{background:#204d36;color:#8be3b3}.badge.warn{background:#4d3620;color:#e3b98b}.empty-state{text-align:center;padding:3rem 1rem;color:var(--text-dim)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:50;padding:1rem}.modal{background:var(--bg-alt);border:1px solid var(--border);border-radius:10px;padding:1.5rem;width:100%;max-width:520px;max-height:90vh;overflow:auto}.image-upload-row{display:flex;gap:1rem;flex-wrap:wrap;margin-top:.5rem}.image-upload-box{width:150px}.image-upload-box .preview{width:150px;height:200px;object-fit:cover;border-radius:6px;border:1px solid var(--border);background:#0d0e12;display:block;margin-bottom:.4rem}.image-upload-box .preview.empty{display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:.7rem;text-align:center}.scan-result{font-size:.8rem;margin-top:.5rem;padding:.5rem .7rem;border-radius:6px;background:var(--panel);border:1px solid var(--border)}.loading,.error-msg{padding:2rem;text-align:center;color:var(--text-dim)}.error-msg{color:var(--danger)}
