.layout{display:flex;min-height:100vh}.sidebar{width:250px;background-color:#161b22;border-right:1px solid #30363d;display:flex;flex-direction:column}.sidebar-header{padding:1.5rem;border-bottom:1px solid #30363d}.sidebar-header h1{font-size:1.25rem;font-weight:600;color:#58a6ff}.nav-links{padding:1rem;display:flex;flex-direction:column;gap:.5rem}.nav-link{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;border-radius:6px;color:#c9d1d9;text-decoration:none;transition:all .2s}.nav-link:hover{background-color:#21262d;color:#58a6ff}.nav-link.active{background-color:#1f6feb;color:#fff}.main-content{flex:1;background-color:#0d1117;overflow-y:auto}.dashboard{padding:2rem;max-width:1400px;margin:0 auto}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:1rem}.breadcrumb{display:flex;align-items:center;font-size:1.25rem;flex-wrap:wrap}.crumb{cursor:pointer;padding:.25rem .5rem;border-radius:4px;color:#58a6ff}.crumb:hover{background:#21262d}.crumb.active{color:#e6edf3;font-weight:600}.crumb-sep{color:#484f58;margin:0 .25rem}.header-actions{display:flex;gap:.75rem}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:#238636;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer}.btn-secondary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;background:transparent;color:#c9d1d9;border:1px solid #30363d;border-radius:6px;cursor:pointer}.btn-sm{padding:.5rem 1rem;font-size:.875rem}.inline-form{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#161b22;border:1px solid #30363d;border-radius:8px;margin-bottom:1.5rem}.inline-form input{flex:1;max-width:300px;padding:.5rem .75rem;background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#e6edf3}.inline-form input:focus{outline:none;border-color:#58a6ff}.form-card{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:1.5rem;margin-bottom:1.5rem;max-width:500px}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-size:.875rem;color:#c9d1d9}.form-group input,.form-group textarea{width:100%;padding:.75rem;background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#e6edf3}.explorer-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.grid-item{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:1.5rem 1rem;background:#161b22;border:2px solid #30363d;border-radius:12px;cursor:pointer;transition:all .15s ease;min-height:160px;text-align:center}.grid-item:hover{border-color:#58a6ff;transform:translateY(-2px)}.back-item{background:#0d1117;border-style:dashed}.back-item:hover{background:#161b22}.folder-item .folder-icon{color:#f0883e;margin-bottom:.75rem}.folder-item.drag-over{border-color:#58a6ff!important;border-style:solid!important;background:#58a6ff26!important;transform:scale(1.05);box-shadow:0 0 20px #58a6ff66}.project-item{cursor:grab}.project-item:active{cursor:grabbing}.project-item .project-icon{color:#58a6ff;margin-bottom:.75rem}.item-name{font-weight:500;font-size:.95rem;color:#e6edf3;margin-bottom:.25rem;word-break:break-word}.item-meta{font-size:.75rem;color:#8b949e;display:flex;align-items:center;gap:.25rem}.delete-btn{position:absolute;top:.5rem;right:.5rem;background:transparent;border:none;color:#8b949e;padding:.35rem;border-radius:4px;cursor:pointer;opacity:0;transition:opacity .15s}.grid-item:hover .delete-btn{opacity:1}.delete-btn:hover{background:#f8514933;color:#f85149}.empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;color:#8b949e}.empty-state svg{opacity:.4;margin-bottom:1rem}.empty-state h3{font-weight:500}.loading{display:flex;justify-content:center;align-items:center;height:50vh;font-size:1.25rem;color:#8b949e}.overview{padding:2rem;max-width:1500px;margin:0 auto}.overview-loading,.overview-error{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;height:60vh;color:#8b949e}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.overview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.overview-title{display:flex;align-items:center;gap:.75rem}.overview-title h1{font-size:1.5rem;font-weight:600;color:#e6edf3}.overview-meta{display:flex;align-items:center;gap:.75rem}.meta-updated{font-size:.75rem;color:#484f58}.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-bottom:2rem}.kpi-card{background:#161b22;border:1px solid #30363d;border-top:3px solid;border-radius:8px;padding:1.25rem;display:flex;align-items:flex-start;gap:1rem;transition:transform .15s,box-shadow .15s}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0006}.kpi-icon{flex-shrink:0;padding-top:2px}.kpi-body{display:flex;flex-direction:column}.kpi-value{font-size:1.75rem;font-weight:700;color:#e6edf3;line-height:1.1}.kpi-label{font-size:.8rem;color:#8b949e;margin-top:.25rem;text-transform:uppercase;letter-spacing:.05em}.kpi-sub{font-size:.75rem;color:#484f58;margin-top:.15rem}.overview-columns{display:grid;grid-template-columns:1.4fr 1fr;gap:1.5rem;align-items:start}@media(max-width:1100px){.overview-columns{grid-template-columns:1fr}}.overview-right{display:flex;flex-direction:column;gap:1.5rem}.overview-section{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:1.25rem}.overview-section h2{font-size:1rem;font-weight:600;color:#e6edf3;display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}.empty-msg{color:#484f58;font-size:.875rem}.class-table-wrap{overflow-x:auto;max-height:600px;overflow-y:auto}.class-table{width:100%;border-collapse:collapse;font-size:.875rem}.class-table thead{position:sticky;top:0;background:#161b22;z-index:1}.class-table th{text-align:left;color:#8b949e;font-weight:500;padding:.5rem .75rem;border-bottom:1px solid #30363d;white-space:nowrap}.class-table td{padding:.6rem .75rem;border-bottom:1px solid #21262d;color:#c9d1d9}.class-table tbody tr:hover{background:#1c2128}.rank-col{width:36px;text-align:center!important;color:#484f58}.num-col{text-align:right!important;white-space:nowrap;font-variant-numeric:tabular-nums}.bar-col{width:30%;min-width:100px}.class-name-cell{display:flex;align-items:center;gap:.5rem;font-weight:500}.class-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.bar-bg{height:10px;background:#21262d;border-radius:5px;overflow:hidden}.bar-fill-stacked{height:100%;width:100%;border-radius:5px;display:flex;overflow:hidden}.bar-segment-render{height:100%;background:#58a6ff}.bar-segment-real{height:100%;background:#3fb950}.dim{color:#6e7681!important;font-size:.8rem}.activity-chart{display:flex;align-items:flex-end;gap:2px;height:120px;padding:0 2px}.activity-bar-wrapper{flex:1;height:100%;display:flex;align-items:flex-end;cursor:default}.activity-bar{width:100%;min-height:2px;background:#58a6ff;border-radius:2px 2px 0 0;transition:height .3s ease;opacity:.85}.activity-bar-wrapper:hover .activity-bar{opacity:1;background:#79c0ff}.activity-labels{display:flex;justify-content:space-between;margin-top:.4rem;font-size:.65rem;color:#484f58}.annotator-list{display:flex;flex-direction:column;gap:.6rem}.annotator-row{display:grid;grid-template-columns:24px 1fr 1fr 60px;align-items:center;gap:.5rem}.annotator-rank{color:#484f58;text-align:center;font-size:.8rem}.annotator-name{font-size:.85rem;color:#c9d1d9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotator-bar-bg{height:8px;background:#21262d;border-radius:4px;overflow:hidden}.annotator-bar-fill{height:100%;background:#3fb950;border-radius:4px;transition:width .4s ease}.annotator-count{text-align:right;font-size:.8rem;color:#8b949e;font-variant-numeric:tabular-nums}.donut-container{display:flex;align-items:center;gap:1.5rem}.donut-svg{width:140px;height:140px;flex-shrink:0}.donut-segment{transition:stroke-dasharray .6s ease,stroke-dashoffset .6s ease}.donut-center-value{fill:#e6edf3;font-size:1.5rem;font-weight:700}.donut-center-label{fill:#8b949e;font-size:.65rem;text-transform:uppercase;letter-spacing:.05em}.donut-legend{display:flex;flex-direction:column;gap:1rem;flex:1}.legend-item{display:flex;align-items:center;gap:.75rem}.legend-icon{flex-shrink:0}.legend-detail{display:flex;flex-direction:column;flex:1;min-width:0}.legend-label{font-size:.85rem;font-weight:600;color:#e6edf3}.legend-value{font-size:.75rem;color:#8b949e}.legend-sub{font-size:.7rem;color:#484f58}.legend-pct{font-size:1.1rem;font-weight:700;color:#e6edf3;white-space:nowrap}@media(max-width:1100px){.donut-container{flex-direction:column;align-items:center}}.camera-management{padding:2rem;max-width:1200px}.page-header h1{font-size:2rem;margin-bottom:.5rem}.subtitle{color:#8b949e}.form-card{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:1.5rem;margin-bottom:2rem}.form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.form-header h2{font-size:1.25rem}.form-row{margin-bottom:1rem}.form-row.two-cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;font-size:.875rem;color:#c9d1d9}.form-group input,.form-group textarea{background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:.75rem;color:#e6edf3;font-size:.875rem}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#58a6ff}.form-group .hint{font-size:.75rem;color:#8b949e}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:1.5rem}.btn-primary{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:#238636;color:#fff;border:none;border-radius:6px;font-weight:500;cursor:pointer;transition:background .2s}.btn-primary:disabled{background:#21262d;cursor:not-allowed}.btn-secondary{padding:.75rem 1.5rem;background:transparent;color:#c9d1d9;border:1px solid #30363d;border-radius:6px;cursor:pointer;transition:all .2s}.btn-secondary:hover{background:#21262d}.btn-icon{background:transparent;border:none;color:#8b949e;cursor:pointer;padding:.5rem;border-radius:4px}.btn-icon:hover{background:#21262d;color:#c9d1d9}.btn-danger{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;color:#f85149;border:1px solid #f85149;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.btn-danger:hover{background:#f8514922}.btn-edit{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:transparent;color:#58a6ff;border:1px solid #58a6ff;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .2s}.btn-edit:hover{background:#58a6ff22}.add-btn{margin-bottom:2rem}.cameras-list h2{font-size:1.25rem;margin-bottom:1rem;color:#c9d1d9}.cameras-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.camera-card{background:#161b22;border:1px solid #30363d;border-radius:8px;padding:1.25rem}.camera-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;color:#58a6ff}.camera-header h3{color:#e6edf3;font-size:1rem}.camera-info{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.resolution{font-family:monospace;color:#8b949e;font-size:.875rem}.description{color:#8b949e;font-size:.875rem}.badge{display:inline-block;padding:.25rem .5rem;background:#388bfd22;color:#58a6ff;border-radius:4px;font-size:.75rem;width:fit-content}.camera-actions{display:flex;gap:.5rem}.empty-state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:3rem;color:#8b949e;text-align:center}.loading{display:flex;justify-content:center;padding:4rem;color:#8b949e}.form-row{display:flex;gap:1rem}.section-header-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.section-header-row h3{font-size:1rem;color:#e6edf3;margin:0}.btn-small{padding:.25rem .5rem;font-size:.75rem;background:#30363d;border:1px solid #484f58;border-radius:4px;color:#8b949e;cursor:pointer;transition:all .2s}.btn-small:hover{background:#484f58;color:#e6edf3}.project-view{padding:2rem;max-width:1200px;margin:0 auto}.page-header{margin-bottom:2rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:#8b949e;text-decoration:none;margin-bottom:1rem;font-size:.9rem}.back-link:hover{color:#58a6ff}.page-header h1{font-size:2rem;font-weight:600;color:#e6edf3;margin:0}.subtitle{color:#8b949e;margin-top:.5rem}.overview-section{background:#161b22;border:1px solid #30363d;border-radius:12px;padding:1.5rem;margin-bottom:1.5rem}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:1.5rem}.stat-card{display:flex;flex-direction:column;gap:.75rem;padding:1rem;background:#0d1117;border-radius:8px;border:1px solid #30363d}.stat-card .stat-header{display:flex;align-items:center;gap:1rem}.stat-card-interactive{transition:border-color .2s,box-shadow .2s}.stat-card-interactive:hover{border-color:#30363d}.stat-card-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:100%;padding:.6rem 1rem;border:none;border-radius:6px;font-size:.9rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .15s,opacity .15s}.stat-card-btn:hover{transform:translateY(-1px)}.stat-card-btn.btn-pending{background:linear-gradient(135deg,#238636,#2ea043);color:#fff}.stat-card-btn.btn-pending:hover{box-shadow:0 2px 8px #23863666}.stat-card-btn.btn-view{background:linear-gradient(135deg,#1f6feb,#388bfd);color:#fff}.stat-card-btn.btn-view:hover{box-shadow:0 2px 8px #388bfd66}.stat-card-btn.btn-edit{background:#21262d;border:1px solid #30363d;color:#e6edf3}.stat-card-btn.btn-edit:hover{background:#30363d}.stat-card-actions{display:flex;gap:.5rem}.stat-icon{width:48px;height:48px;border-radius:10px;display:flex;align-items:center;justify-content:center}.stat-icon.pending{background:#8883;color:#8b949e}.stat-icon.in-progress{background:#ffc10733;color:#ffc107}.stat-icon.completed{background:#23863633;color:#238636}.stat-icon.total{background:#58a6ff33;color:#58a6ff}.stat-info{display:flex;flex-direction:column}.stat-info .stat-value{font-size:1.75rem;font-weight:700;color:#e6edf3;line-height:1}.stat-info .stat-label{font-size:.8rem;color:#8b949e;margin-top:.25rem}.progress-section{margin-bottom:1.5rem}.progress-header{display:flex;justify-content:space-between;font-size:.85rem;color:#8b949e;margin-bottom:.5rem}.progress-bar{height:8px;background:#30363d;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#238636,#2ea043);border-radius:4px;transition:width .3s ease}.btn-annotate-main{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:1rem 2rem;background:linear-gradient(135deg,#238636,#2ea043);border:none;border-radius:8px;color:#fff;font-size:1.1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .15s}.btn-annotate-main:hover{transform:translateY(-2px);box-shadow:0 4px 12px #23863666}.btn-segmentation-main{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;margin-top:.75rem;padding:.95rem 2rem;background:linear-gradient(135deg,#7c3aed,#a371f7);border:1px solid rgba(163,113,247,.35);border-radius:8px;color:#fff;font-size:1.05rem;font-weight:650;cursor:pointer;transition:transform .15s,box-shadow .15s}.btn-segmentation-main:hover{transform:translateY(-2px);box-shadow:0 4px 14px #a371f759}.import-section{margin-top:1rem;padding:1rem;background:#0d1117;border:1px dashed #30363d;border-radius:10px}.import-section.dragging{border-color:#58a6ff;background:#58a6ff14}.import-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.75rem}.import-title{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:#e6edf3}.import-hint{font-size:.85rem;color:#8b949e}.import-actions{display:flex;align-items:center;gap:.75rem}.btn-import{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .9rem;background:#21262d;border:1px solid #30363d;border-radius:8px;color:#e6edf3;cursor:pointer;transition:transform .12s,background .12s}.btn-import:hover{background:#2d333b;transform:translateY(-1px)}.btn-import:disabled{opacity:.6;cursor:not-allowed;transform:none}.import-meta{margin-left:auto;font-size:.85rem;color:#8b949e}.export-progress{margin-top:.75rem;padding:.75rem 1rem;background:#161b22;border:1px solid #30363d;border-radius:8px}.export-progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem;font-size:.85rem}.export-progress-label{display:flex;align-items:center;gap:.5rem;color:#e6edf3;font-weight:500}.export-progress-stats{color:#8b949e}.export-spinner{display:inline-block;width:14px;height:14px;border:2px solid #30363d;border-top-color:#58a6ff;border-radius:50%;animation:export-spin .8s linear infinite}@keyframes export-spin{to{transform:rotate(360deg)}}.export-progress-track{height:6px;background:#21262d;border-radius:3px;overflow:hidden}.export-progress-fill{height:100%;background:linear-gradient(90deg,#238636,#2ea043);border-radius:3px;transition:width .3s ease}.export-progress-fill.indeterminate{width:40%;animation:export-indeterminate 1.5s ease-in-out infinite}@keyframes export-indeterminate{0%{transform:translate(-100%)}to{transform:translate(350%)}}.import-checkbox{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;color:#8b949e;cursor:pointer;-webkit-user-select:none;user-select:none}.import-checkbox:hover{color:#c9d1d9}.import-checkbox input[type=checkbox]{width:14px;height:14px;accent-color:#238636;cursor:pointer}.setup-section{background:#161b22;border:1px solid #30363d;border-radius:12px;overflow:hidden}.setup-toggle{display:flex;align-items:center;gap:.75rem;width:100%;padding:1rem 1.5rem;background:transparent;border:none;color:#e6edf3;font-size:1rem;font-weight:500;cursor:pointer;text-align:left}.setup-toggle:hover{background:#21262d}.setup-summary{flex:1;text-align:right;font-size:.85rem;color:#8b949e;font-weight:400}.toggle-arrow{font-size:.75rem;color:#8b949e;transition:transform .2s}.toggle-arrow.open{transform:rotate(180deg)}.setup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem;padding:1.5rem;border-top:1px solid #30363d}.setup-grid-new{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto auto;gap:1.25rem;padding:1.5rem;border-top:1px solid #30363d}.setup-grid-new .classes-card{grid-row:1 / 3;display:flex;flex-direction:column;min-width:0}.setup-grid-new .attributes-card{grid-row:1;grid-column:2;display:flex;flex-direction:column;min-width:0}.setup-grid-new .camera-card{grid-row:2;grid-column:2;display:flex;flex-direction:column;min-width:0}.classes-list-scroll{flex:1;overflow-y:auto;margin:1rem 0;padding-right:.5rem}.classes-list-scroll::-webkit-scrollbar{width:6px}.classes-list-scroll::-webkit-scrollbar-track{background:#21262d;border-radius:3px}.classes-list-scroll::-webkit-scrollbar-thumb{background:#484f58;border-radius:3px}.classes-list-scroll::-webkit-scrollbar-thumb:hover{background:#6e7681}.setup-card{background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:1.25rem;overflow:visible;min-width:0}.setup-card h2{display:flex;align-items:center;gap:.5rem;font-size:1rem;font-weight:600;color:#e6edf3;margin:0 0 1rem}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.card-header h2{margin:0}.form-group{margin-bottom:.75rem}.form-group label{display:block;font-size:.8rem;font-weight:500;color:#8b949e;margin-bottom:.35rem}.form-group input,.form-group select{width:100%;padding:.6rem .75rem;background:#0d1117;border:1px solid #30363d;border-radius:6px;color:#e6edf3;font-size:.875rem}.form-group input:focus,.form-group select:focus{outline:none;border-color:#58a6ff}.hint-link{display:block;margin-top:.5rem;font-size:.8rem;color:#58a6ff;text-decoration:none}.hint-link:hover{text-decoration:underline}.camera-preview{display:flex;align-items:center;gap:1rem;margin-top:1rem;padding:.75rem;background:#58a6ff1a;border-radius:6px}.badge{font-size:.8rem;padding:.25rem .5rem;background:#238636;color:#fff;border-radius:4px}.resolution{font-size:.85rem;color:#8b949e;font-family:SF Mono,Monaco,monospace}.inline-form{background:#161b22;border:1px solid #30363d;border-radius:6px;padding:1rem;margin-bottom:.75rem;display:flex;flex-direction:column;gap:.75rem}.inline-form .form-group{margin-bottom:0}.form-row{display:flex;gap:.5rem;align-items:center}.form-row input[type=text],.form-row input[type=number],.form-row select{flex:1;min-width:60px;padding:.5rem .6rem;background:#0d1117;border:1px solid #30363d;border-radius:4px;color:#e6edf3;font-size:.875rem}.form-row select:focus,.form-row input[type=text]:focus,.form-row input[type=number]:focus{outline:none;border-color:#58a6ff}.form-row input[type=color]{width:36px;height:36px;padding:2px;background:#0d1117;border:1px solid #30363d;border-radius:4px;cursor:pointer;flex-shrink:0}.form-actions{display:flex;gap:.5rem;justify-content:flex-end}.classes-list{display:flex;flex-direction:column;gap:.5rem}.empty-hint{color:#8b949e;font-size:.9rem;text-align:center;padding:1rem}.class-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#0d1117;border:1px solid #30363d;border-radius:6px}.class-color{width:16px;height:16px;border-radius:3px;flex-shrink:0}.class-number{width:20px;height:20px;display:flex;align-items:center;justify-content:center;background:#30363d;border-radius:4px;font-size:.75rem;font-weight:600;color:#e6edf3}.class-name{flex:1;font-weight:500;color:#e6edf3}.keypoint-badge{font-size:.75rem;padding:.2rem .5rem;background:#388bfd33;color:#58a6ff;border-radius:4px}.btn-icon-small{background:transparent;border:none;color:#8b949e;padding:.25rem;cursor:pointer;border-radius:4px}.btn-icon-small:hover{background:#f8514933;color:#f85149}.btn-small{display:inline-flex;align-items:center;gap:.25rem;padding:.4rem .75rem;background:#21262d;border:1px solid #30363d;border-radius:6px;color:#e6edf3;font-size:.8rem;cursor:pointer}.btn-small:hover{background:#30363d}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem;background:#238636;border:none;border-radius:6px;color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;text-decoration:none}.btn-primary:hover{background:#2ea043}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{padding:.5rem 1rem;background:transparent;border:1px solid #30363d;border-radius:6px;color:#8b949e;font-size:.85rem;cursor:pointer}.btn-secondary:hover{border-color:#8b949e;color:#e6edf3}.hint{margin-top:1rem;font-size:.8rem;color:#8b949e}.loading{padding:2rem;text-align:center;color:#8b949e}.attributes-list{display:flex;flex-direction:column;gap:.5rem;margin-top:1rem}.attr-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background:#0d1117;border:1px solid #30363d;border-radius:6px}.attr-icon{color:#8b949e;display:flex;align-items:center}.attr-key{font-family:monospace;font-size:.85rem;color:#79c0ff}.attr-label{flex:1;color:#e6edf3;font-size:.9rem}.attr-badge{font-size:.7rem;padding:.2rem .5rem;background:#21262d;border-radius:4px;color:#8b949e;text-transform:uppercase}.required-badge{font-size:.65rem;padding:.15rem .4rem;background:#ff7b72;color:#0d1117;border-radius:3px;font-weight:600}.checkbox-label{display:flex;align-items:center;gap:.5rem;font-size:.9rem;color:#e6edf3;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.class-item-expanded{background:#0d1117;border:1px solid #30363d;border-radius:6px;padding:.75rem;margin-bottom:.5rem}.class-item-header{display:flex;align-items:center;gap:.75rem}.class-item-header .class-color{width:16px;height:16px;border-radius:4px;flex-shrink:0}.class-item-header .class-number{background:#21262d;color:#8b949e;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600}.class-item-header .class-name{flex:1;font-weight:500;color:#e6edf3}.keypoints-detail{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #21262d}.keypoints-label{font-size:.75rem;color:#8b949e;margin-right:.25rem}.keypoint-name{font-size:.75rem;padding:.2rem .5rem;background:#238636;color:#fff;border-radius:4px;font-family:monospace}.class-item-header .btn-icon-small.btn-edit{color:#58a6ff}.class-item-header .btn-icon-small.btn-edit:hover{background:#58a6ff22}@media(max-width:900px){.setup-grid-new{grid-template-columns:1fr;grid-template-rows:auto}.setup-grid-new .classes-card{grid-row:auto}.setup-grid-new .attributes-card,.setup-grid-new .camera-card{grid-row:auto;grid-column:1}}.render-section{margin-top:1.5rem}.render-section .section-header-btn{width:100%;display:flex;align-items:center;gap:.75rem;padding:0;background:transparent;border:none;cursor:pointer;text-align:left}.render-section .section-header-btn h2{font-size:1.1rem;font-weight:600;color:#e6edf3;margin:0;flex:1}.render-section .section-header-btn svg{color:#58a6ff}.render-settings-content{margin-top:1rem;display:flex;flex-direction:column;gap:1rem}.file-upload-row{display:flex;align-items:center;gap:1rem}.file-upload-row .file-name{color:#58a6ff;font-size:.9rem;font-family:monospace}.scene-preview{display:flex;align-items:center;gap:.75rem;margin-top:.5rem;padding:.5rem;background:#0d1117;border-radius:6px}.scene-preview .badge.success{background:#238636;color:#fff;padding:.2rem .5rem;border-radius:4px;font-size:.8rem}.scene-preview .scene-name{color:#8b949e;font-size:.85rem}.form-group.half{flex:1}.btn-primary.submit-render{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;background:linear-gradient(135deg,#238636,#2ea043);border:none;border-radius:8px;color:#fff;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;align-self:flex-start}.btn-primary.submit-render:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #2386364d}.btn-primary.submit-render:disabled{opacity:.5;cursor:not-allowed}.spinner{animation:spin 1s linear infinite}.render-jobs-section{margin-top:1.5rem;border-top:1px solid #30363d;padding-top:1rem}.render-jobs-section h3{font-size:1rem;color:#e6edf3;margin-bottom:.75rem}.render-jobs-list{display:flex;flex-direction:column;gap:.75rem}.render-job-item{background:#0d1117;border:1px solid #30363d;border-radius:8px;padding:.75rem 1rem}.render-job-item.status-running{border-color:#1f6feb}.render-job-item.status-completed{border-color:#238636}.render-job-item.status-failed{border-color:#f85149}.job-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.job-header .job-name{font-weight:600;color:#e6edf3}.status-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;text-transform:capitalize}.status-badge.pending{background:#30363d;color:#8b949e}.status-badge.running{background:#1f6feb33;color:#58a6ff}.status-badge.completed{background:#23863633;color:#3fb950}.status-badge.failed{background:#f8514933;color:#f85149}.job-details{display:flex;gap:1rem;color:#8b949e;font-size:.85rem}.job-progress{margin-top:.75rem}.progress-bar{height:6px;background:#30363d;border-radius:3px;overflow:hidden;margin-bottom:.35rem}.progress-fill{height:100%;background:linear-gradient(90deg,#1f6feb,#58a6ff);border-radius:3px;transition:width .3s ease}.progress-text{font-size:.8rem;color:#8b949e}.job-error{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;padding:.5rem;background:#f8514922;border-radius:4px;color:#f85149;font-size:.85rem}.job-output{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;color:#3fb950;font-size:.85rem}.autocomplete-wrapper{position:relative;flex:1}.autocomplete-wrapper input{width:100%}.autocomplete-dropdown{position:absolute;top:100%;left:0;right:0;background:#1c2128;border:1px solid #444c56;border-top:none;border-radius:0 0 6px 6px;max-height:200px;overflow-y:auto;z-index:50;box-shadow:0 8px 24px #0006}.autocomplete-item{padding:.5rem .75rem;font-size:.875rem;color:#c9d1d9;cursor:pointer;border-bottom:1px solid #21262d;font-family:SF Mono,Monaco,Cascadia Code,monospace}.autocomplete-item:last-child{border-bottom:none}.autocomplete-item:hover,.autocomplete-item.active{background:#388bfd22;color:#58a6ff}.autocomplete-item .match{color:#58a6ff;font-weight:600}.autocomplete-hint{padding:.5rem .75rem;font-size:.8rem;color:#6e7681;font-style:italic}.seg-page{max-width:1100px;margin:0 auto;padding:1.25rem}.seg-header{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1rem}.seg-back{display:inline-flex;align-items:center;gap:.5rem;color:#8b949e;text-decoration:none;width:fit-content}.seg-back:hover{color:#c9d1d9}.seg-title{display:flex;align-items:center;gap:.75rem}.seg-icon{width:34px;height:34px;border-radius:10px;background:#a371f72e;border:1px solid rgba(163,113,247,.35);display:grid;place-items:center;color:#c9b4ff}.seg-title h1{margin:0;font-size:1.35rem}.seg-subtitle{margin:.1rem 0 0;color:#8b949e;font-size:.9rem}.seg-sections{display:grid;grid-template-columns:1fr;gap:1rem}.seg-card{background:#0d1117;border:1px solid #30363d;border-radius:12px;padding:1rem}.seg-card-muted{border-style:dashed}.seg-card-title{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:#e6edf3;margin-bottom:.75rem}.seg-bullets{margin:0;padding-left:1.1rem;color:#c9d1d9}.seg-bullets li{margin:.35rem 0}.seg-note{margin-top:.9rem;padding:.75rem;border-radius:10px;background:#a371f71a;border:1px solid rgba(163,113,247,.25);color:#c9b4ff;font-size:.9rem}.seg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.seg-tile{border:1px solid #30363d;border-radius:12px;padding:.85rem;background:#0b0f15}.seg-tile-title{font-weight:600;color:#e6edf3;margin-bottom:.25rem}.seg-tile-desc{color:#8b949e;font-size:.9rem}@media(max-width:900px){.seg-grid{grid-template-columns:1fr}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#0f1419;color:#e6edf3}#root{min-height:100vh;display:flex;flex-direction:column}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#161b22}::-webkit-scrollbar-thumb{background:#30363d;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#484f58}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}
