:root{color:#0d1b2a;background:#0b1320;font-family:Inter,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;background:#0b1320;color:#0d1b2a}a{color:inherit}.app-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#0f1c2d;color:#e8f1ff;padding:1.5rem 1rem;display:flex;flex-direction:column;gap:1.25rem;box-shadow:inset -1px 0 #ffffff0a}.brand{font-weight:800;letter-spacing:.02em}.nav{display:flex;flex-direction:column;gap:.4rem}.nav a{padding:.65rem .9rem;border-radius:10px;color:#d7e6ff;text-decoration:none;background:transparent;transition:background .15s ease,color .15s ease}.nav a.active{background:linear-gradient(120deg,#56ccf2,#2f80ed);color:#fff}.sidebar-footer{margin-top:auto;display:flex;flex-direction:column;gap:.4rem}.sidebar-footer .user{font-weight:700;color:#9cc0ff}.content{background:radial-gradient(circle at 10% 10%,#1c2f4a 0,transparent 30%),radial-gradient(circle at 80% 20%,#1b3f5f 0,transparent 25%),#0b1320;padding:1.5rem 2rem;color:#e9edf5}.page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;margin-bottom:1rem}.page-title{margin:0;font-size:1.4rem}.page-subtitle{margin:.3rem 0 0;font-size:.9rem;color:#9cc0ff;font-weight:500}.panel{background:#101b2c;border:1px solid rgba(255,255,255,.05);border-radius:14px;padding:1.2rem;box-shadow:0 12px 30px #00000059}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}.button-row{display:flex;gap:.5rem;flex-wrap:wrap}button,.secondary,.linkish{font:inherit;border:none;padding:.7rem 1rem;border-radius:10px;cursor:pointer;background:linear-gradient(120deg,#56ccf2,#2f80ed);color:#fff;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}button:hover,.secondary:hover,.linkish:hover{transform:translateY(-1px);box-shadow:0 10px 24px #2f80ed59}.secondary{background:#ffffff0f;color:#cbd7ed;border:1px solid rgba(255,255,255,.08)}form{display:flex;flex-direction:column;gap:.75rem}label{font-weight:600;color:#cfd9ec}input,select,textarea{background:#0b1627;color:#f4f7ff;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.7rem .8rem;font:inherit}input:focus,select:focus,textarea:focus{outline:2px solid #2f80ed}.help{color:#92a8c6;font-size:.9rem}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.card{background:#0f1c2d;border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.card img{width:100%;height:180px;object-fit:cover;background:#0b1627}.card-body{padding:.9rem;display:flex;flex-direction:column;gap:.4rem}.badge{display:inline-block;padding:.25rem .6rem;border-radius:8px;background:#56ccf21f;color:#8fd9ff;font-size:.85rem}.muted{color:#9bb0cd}.table{width:100%;border-collapse:collapse;border:1px solid rgba(255,255,255,.05)}.table th,.table td{padding:.6rem .75rem;border-bottom:1px solid rgba(255,255,255,.05);text-align:left}.table th{color:#cfd9ec;font-weight:700}.alert{padding:.75rem 1rem;border-radius:10px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);color:#e7ecf5}.message{min-height:1.4rem;color:#b6c7e4}.canvas-shell{background:#0b1627;border:1px solid rgba(255,255,255,.08);border-radius:12px;overflow:hidden}.canvas-shell canvas{width:100%;height:520px;display:block}.dropzone{border:2px dashed rgba(86,204,242,.6);padding:1.2rem;border-radius:12px;text-align:center;background:#0b1627;cursor:pointer;transition:background .15s ease,border-color .15s ease}.dropzone.dragover{background:#56ccf21a;border-color:#2f80ed}.file-list{white-space:pre-line;color:#cfd9ec;font-size:.9rem}.flex-row{display:flex;gap:1rem;flex-wrap:wrap}.small-note{font-size:.85rem;color:#9bb0cd}.tag-list{display:flex;flex-wrap:wrap;gap:.5rem}.tag{padding:.25rem .5rem;border-radius:8px;background:#ffffff14;color:#dfe8f5;font-size:.85rem}.bulk-import-page{max-width:1400px;margin:0 auto;padding:2rem}.bulk-import-page h1{font-size:2rem;margin-bottom:1.5rem;color:#e8f1ff}.bulk-import-form{display:flex;flex-direction:column;gap:1.5rem}.table-container{overflow-x:auto;border-radius:12px;background:#0f1c2d;border:1px solid rgba(255,255,255,.08)}.empty-state{padding:2rem;text-align:center;color:#89a}.bulk-import-table{width:100%;border-collapse:collapse;font-size:.95rem}.bulk-import-table thead{background:#0d1520;border-bottom:2px solid rgba(255,255,255,.1)}.bulk-import-table th{padding:1rem;text-align:left;color:#a8bacc;font-weight:600;white-space:nowrap}.bulk-import-table td{padding:.75rem 1rem;border-bottom:1px solid rgba(255,255,255,.05)}.bulk-import-table th,.bulk-import-table td{min-width:140px}.bulk-import-table th.fbx,.bulk-import-table td.fbx{min-width:180px}.file-label{display:block;padding:.5rem;background:#1a2534;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#a8bacc;font-size:.9rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:120px}.bulk-import-table tbody tr:hover{background:#ffffff05}.form-input{width:100%;padding:.5rem;border:1px solid rgba(255,255,255,.1);border-radius:6px;background:#1a2534;color:#e8f1ff;font-size:.9rem;font-family:inherit}.form-input:focus{outline:none;border-color:#4a9eff;box-shadow:0 0 0 2px #4a9eff1a}.file-input-wrapper{position:relative;display:inline-block;width:100%}.form-file-input{position:absolute;opacity:0;width:100%;height:100%;cursor:pointer}.file-label{display:block;padding:.5rem;background:#1a2534;border:1px solid rgba(255,255,255,.1);border-radius:6px;color:#a8bacc;font-size:.9rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-input-wrapper:hover .file-label{background:#212d3f;border-color:#ffffff26}.muted{color:#678;font-size:.9rem}.btn-remove{padding:.4rem .8rem;background:#8b3a3a;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600;transition:all .2s ease}.btn-remove:hover{background:#a54545}.btn-primary{padding:.7rem 1.4rem;background:#2a5a7a;color:#e8f1ff;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:#3a6a8a}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-submit{padding:.7rem 1.4rem;background:#2a7a4a;color:#e8f1ff;border:1px solid rgba(255,255,255,.1);border-radius:8px;cursor:pointer;font-size:.95rem;font-weight:600;transition:all .2s ease}.btn-submit:hover:not(:disabled){background:#3a8a5a}.btn-submit:disabled{opacity:.6;cursor:not-allowed}.message{padding:1rem;border-radius:8px;font-size:.9rem;white-space:pre-wrap;word-wrap:break-word}.message.success{background:#2a7a4a33;color:#7fd4a0;border:1px solid rgba(127,212,160,.2)}.message.error{background:#8b3a3a33;color:#f99;border:1px solid rgba(255,153,153,.2)}.bulk-import-page{max-width:1400px}.bulk-import-page h1,.items-container{margin-bottom:2rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(450px,1fr));gap:1.5rem;margin-bottom:1.5rem}.bulk-item-card{background:#101b2c;border:1px solid rgba(255,255,255,.05);border-radius:12px;overflow:hidden;transition:all .3s ease}.bulk-item-card.status-success{border-color:#7fd4a04d;background:#7fd4a00d}.bulk-item-card.status-error{border-color:#ff99994d;background:#ff99990d}.bulk-item-card.status-uploading{border-color:#58a6ff4d}.card-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid rgba(255,255,255,.05);background:#0003}.card-title{display:flex;align-items:center;gap:.75rem;flex:1}.model-name{font-weight:600;color:#e8f1ff;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-badge{display:inline-block;padding:.35rem .75rem;border-radius:6px;font-size:.8rem;font-weight:600;white-space:nowrap}.status-badge.status-success{background:#7fd4a033;color:#7fd4a0}.status-badge.status-error{background:#f993;color:#f99}.status-badge.status-uploading{background:#58a6ff33;color:#58a6ff}.status-badge.status-pending{background:#ffffff1a;color:#9cc0ff}.btn-remove-card{background:transparent;border:none;color:#f99;font-size:1.2rem;cursor:pointer;padding:.25rem .5rem;transition:all .2s ease}.btn-remove-card:hover:not(:disabled){color:#f66;transform:scale(1.2)}.btn-remove-card:disabled{opacity:.5;cursor:not-allowed}.progress-bar{height:4px;background:#58a6ff1a;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#58a6ff,#79c0ff);transition:width .3s ease}.error-box{padding:1rem;background:#ff999914;border-left:3px solid #ff9999;margin:0}.error-item{color:#f99;font-size:.85rem;line-height:1.4;word-break:break-word;margin-bottom:.5rem}.error-item:last-child{margin-bottom:0}.card-body{padding:1rem}.form-group{margin-bottom:1rem}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:.85rem;font-weight:600;color:#9cc0ff;margin-bottom:.4rem}.form-input:disabled{opacity:.5;cursor:not-allowed}.files-section{margin-top:1.2rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.05)}.files-section h4{margin:0 0 .8rem;font-size:.9rem;color:#9cc0ff;text-transform:uppercase;letter-spacing:.5px}.file-upload-zone{position:relative;display:flex;align-items:center;justify-content:center;padding:1rem;margin-bottom:.75rem;border:2px dashed rgba(88,166,255,.3);border-radius:8px;background:#58a6ff0d;cursor:pointer;transition:all .2s ease;overflow:hidden}.file-upload-zone:hover{border-color:#58a6ff99;background:#58a6ff1a}.file-upload-zone.drag-over{border-color:#7fd4a0cc;background:#7fd4a026}.form-file-input{position:absolute;opacity:0;cursor:pointer;width:100%;height:100%}.upload-prompt{display:flex;align-items:center;gap:.75rem;pointer-events:none}.upload-icon{font-size:1.4rem}.upload-text{font-size:.85rem;color:#9cc0ff;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:250px}.empty-state{text-align:center;padding:2rem;color:#666;font-size:1rem}.form-actions{display:flex;gap:1rem;flex-wrap:wrap}@media (max-width: 900px){.app-shell{grid-template-columns:1fr}.sidebar{flex-direction:row;align-items:center;gap:.6rem;flex-wrap:wrap}.nav{flex-direction:row;flex-wrap:wrap}.bulk-import-page{padding:1rem}.cards-grid{grid-template-columns:1fr}}@media (max-width: 600px){.card-title{flex-direction:column;align-items:flex-start}.model-name{max-width:100%}.form-actions{flex-direction:column}.btn-primary,.btn-submit{width:100%}.upload-text{max-width:150px}}
