*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:#f5f5f5;color:#333;min-height:100vh}.hidden{display:none!important}.multi-user-warning{position:fixed;top:0;left:0;right:0;z-index:10000;background:linear-gradient(90deg,#dc3545,#c82333);color:#fff;padding:12px 24px;display:none;align-items:center;gap:12px;font-size:14px;box-shadow:0 2px 8px #0000004d}.multi-user-warning.visible{display:flex}.multi-user-warning .warning-icon{font-size:20px;flex-shrink:0}.multi-user-warning .warning-text{flex:1}.multi-user-warning .warning-text strong{font-weight:700;text-transform:uppercase;letter-spacing:.5px}.multi-user-warning .warning-users{background:#0003;padding:4px 12px;border-radius:4px;font-family:Monaco,Menlo,monospace;font-size:12px;flex-shrink:0}.multi-user-warning .warning-close{background:none;border:none;color:#fff;font-size:24px;cursor:pointer;padding:0 8px;opacity:.7;transition:opacity .2s;flex-shrink:0}.multi-user-warning .warning-close:hover{opacity:1}.lock-status{margin-left:16px;display:flex;align-items:center}.lock-badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:6px;font-size:13px;font-weight:500}.lock-badge.lock-own{background:#d4edda;color:#155724;border:1px solid #c3e6cb}.lock-badge.lock-other{background:#fff3cd;color:#856404;border:1px solid #ffc107}.read-only-banner{background:linear-gradient(90deg,#6c757d,#5a6268);color:#fff;padding:10px 20px;display:flex;align-items:center;gap:12px;font-size:14px;border-radius:6px;margin:0 16px 16px;box-shadow:0 2px 4px #0000001a}.read-only-banner .read-only-icon{font-size:20px;flex-shrink:0}.read-only-banner .read-only-text{flex:1;font-weight:500}body:has(.multi-user-warning.visible) #main-screen{padding-top:48px}.screen{min-height:100vh}#login-screen{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2)}.login-container{background:#fff;padding:48px;border-radius:16px;text-align:center;box-shadow:0 10px 40px #0003}.login-container h1{font-size:32px;margin-bottom:16px;color:#333}.login-container p{color:#666;margin-bottom:24px}.error{color:#dc3545;margin-top:16px}.btn{padding:12px 24px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}.btn-small{padding:8px 16px;font-size:12px}.btn-primary{background:#667eea;color:#fff}.btn-primary:hover{background:#5a6fd6}.btn-secondary{background:#e9ecef;color:#495057}.btn-secondary:hover{background:#dee2e6}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.btn-warning{background:#ffc107;color:#212529}.btn-warning:hover{background:#e0a800}#main-screen{display:flex;min-height:100vh}#sidebar{width:260px;background:linear-gradient(180deg,#1a1a2e,#16213e);color:#fff;display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100}.sidebar-header{padding:24px;border-bottom:1px solid rgba(255,255,255,.1)}.sidebar-header h1{font-size:24px;font-weight:700;margin-bottom:4px}.sidebar-header .subtitle{font-size:12px;color:#fff9;text-transform:uppercase;letter-spacing:1px}.sidebar-header .version-info{margin-top:12px;padding-top:12px;border-top:1px solid rgba(0,0,0,.1);display:flex;flex-direction:column;gap:4px}.sidebar-header .version-item{font-size:10px;color:#00000080;font-family:Monaco,Menlo,monospace}.sidebar-header .version-item span{color:#000000b3}#nav-menu{flex:1;padding:16px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;padding:12px 24px;color:#ffffffb3;text-decoration:none;transition:all .2s;gap:12px;position:relative}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#667eea4d;color:#fff;border-left:3px solid #667eea}.nav-item.disabled{opacity:.5;cursor:not-allowed}.nav-item.disabled:hover{background:transparent;color:#ffffffb3}.nav-icon{font-size:18px;width:24px;text-align:center}.nav-label{font-size:14px;font-weight:500}.nav-badge{font-size:10px;background:#fff3;padding:2px 8px;border-radius:10px;margin-left:auto}.sidebar-footer{padding:16px 24px;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:12px}.sidebar-footer .user-info{display:flex;flex-direction:column;gap:8px}.sidebar-footer #user-email{font-size:12px;color:#fff9;word-break:break-all}.publish-actions{display:flex;gap:8px;margin-bottom:12px}.btn-publish{flex:1;padding:10px 14px;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;border-radius:8px;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .2s;box-shadow:0 2px 8px #28a7454d}.btn-publish:hover{background:linear-gradient(135deg,#218838,#1abc9c);transform:translateY(-1px);box-shadow:0 4px 12px #28a74566}.btn-publish:active{transform:translateY(0)}.btn-publish .publish-icon{font-size:14px}.pending-deletes-badge{display:inline-flex;align-items:center;gap:2px;background:#dc3545;color:#fff;font-size:11px;padding:2px 6px;border-radius:10px;margin-left:6px;font-weight:700}.publish-actions .btn-secondary{padding:10px 12px;font-size:12px;white-space:nowrap}.force-reload-section{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.1)}.force-reload-section .btn{width:100%;font-size:11px;padding:8px 12px;opacity:.7;transition:opacity .2s}.force-reload-section .btn:hover{opacity:1}#main-content{flex:1;margin-left:260px;min-height:100vh;background:#f5f5f5}#module-content{padding:24px;max-width:100%;margin:0 auto;overflow-x:auto}.module-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #e9ecef}.module-header h2{font-size:28px;color:#333}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.stats{display:flex;gap:16px;color:#666;font-size:14px}.filters{display:flex;gap:24px;margin-bottom:24px;padding:16px;background:#fff;border-radius:8px;align-items:center;flex-wrap:wrap;box-shadow:0 1px 3px #0000001a}.filter-group{display:flex;align-items:center;gap:8px}.filter-group label{font-weight:500;color:#666}.filter-group select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;background:#fff;min-width:180px}.filters .checkbox-inline,.filter-group .checkbox-inline{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;padding:6px 0;font-weight:500;color:#666}.filters .checkbox-inline input[type=checkbox],.filter-group .checkbox-inline input[type=checkbox]{margin:0;width:16px;height:16px}.module-filters{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a}.module-filters .filter-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.module-filters .filter-group{display:flex;flex-direction:column;gap:4px}.module-filters .filter-group label{font-size:12px;color:#666;font-weight:500}.module-filters .filter-group select{padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;background:#fff;min-width:140px}.module-filters .checkbox-inline{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;padding:6px 0;font-weight:500;color:#666}.module-filters .checkbox-inline input[type=checkbox]{margin:0;width:14px;height:14px}.module-stats{margin-bottom:16px;font-size:13px;color:#666}.module-stats .stats-row{display:flex;gap:24px;flex-wrap:wrap}.module-stats .stat-item{font-size:13px;color:#666}.module-stats .stat-item strong{color:#333;font-weight:600}.images-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px}.image-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:transform .2s,box-shadow .2s}.image-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.image-card img{width:100%;aspect-ratio:3/4;object-fit:cover}.image-card .meta{padding:12px;font-size:12px;color:#666}.image-card .meta .tags{display:flex;flex-wrap:wrap;gap:4px}.image-card .meta .tag{background:#e9ecef;padding:2px 8px;border-radius:4px;font-size:11px}.image-card .meta .tag.dress-code{background:#d4edda;color:#155724}.image-card .meta .tag.effect{background:#cce5ff;color:#004085}.image-card .meta .no-meta{color:#dc3545;font-style:italic}.image-card .drag-handle{position:absolute;top:8px;right:8px;background:#ffffffe6;padding:4px 6px;border-radius:4px;font-size:14px;color:#666;cursor:grab;opacity:0;transition:opacity .2s;letter-spacing:-2px}.image-card:hover .drag-handle{opacity:1}.image-card[draggable=true]{position:relative}.image-card[draggable=true]:active .drag-handle{cursor:grabbing}.image-card.dragging{opacity:.5;transform:scale(1.02)}.image-card.drag-ghost{opacity:.3}.image-card.drag-over{border:3px dashed #667eea;transform:scale(1.02)}.drag-hint{font-size:12px;color:#888;background:#f8f9fa;padding:6px 12px;border-radius:4px;display:flex;align-items:center;gap:6px}.drag-hint:before{content:"⋮⋮";letter-spacing:-2px}.loading{text-align:center;padding:40px;color:#666}.placeholder{text-align:center;padding:80px 40px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.placeholder h2{font-size:24px;color:#333;margin-bottom:16px}.placeholder p{color:#666}.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-content{background:#fff;padding:32px;border-radius:16px;max-width:500px;width:90%;max-height:90vh;overflow-y:auto}.modal-content h2{margin-bottom:24px}.modal-content img{width:100%;max-height:300px;object-fit:contain;border-radius:8px;margin-bottom:24px;background:#f5f5f5}.form-group{margin-bottom:16px}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:#666}.form-group select{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px}.modal-actions{display:flex;gap:12px;margin-top:24px}.modal-actions .btn-danger{margin-right:auto}.upload-progress{margin-top:16px;padding:16px;background:#f8f9fa;border-radius:8px}.upload-progress .progress-bar{height:8px;background:#e9ecef;border-radius:4px;overflow:hidden;margin-bottom:8px}.upload-progress .progress-bar .fill{height:100%;background:#667eea;transition:width .3s}.upload-progress .progress-text{font-size:12px;color:#666}#module-content:has(.shapes-grid){display:flex;flex-direction:column;height:100vh;overflow:hidden;padding-bottom:0}#module-content:has(.shapes-grid) .module-header,#module-content:has(.shapes-grid) .shapes-filters,#module-content:has(.shapes-grid) .shapes-stats{flex-shrink:0}.shapes-grid{flex:1;overflow-y:auto;overflow-x:hidden;padding-bottom:24px}.shape-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #0000001a;cursor:pointer;transition:transform .2s,box-shadow .2s}.shape-card:hover{transform:translateY(-4px);box-shadow:0 4px 16px #00000026}.shape-image-container{background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:16px;display:flex;align-items:center;justify-content:center;min-height:160px}.shape-image-container img{max-width:100%;max-height:140px;object-fit:contain}.shape-meta{padding:12px}.shape-name{font-weight:600;font-size:14px;color:#333;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shape-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.shape-tags .tag,.tag{padding:2px 6px;border-radius:4px;font-size:9px;font-weight:500;display:inline-block;white-space:nowrap}.shape-tags .tag.level-1,.tag.level-1{background:#fff3cd;color:#856404}.shape-tags .tag.level-2,.tag.level-2{background:#cce5ff;color:#004085}.shape-tags .tag.level-3,.tag.level-3{background:#d4edda;color:#155724}.shape-tags .tag.type{background:#e2e3e5;color:#383d41}.shape-info{font-size:11px;color:#999;display:flex;gap:8px}.shape-seasons{font-size:11px;color:#666;margin-top:4px}.empty-state{grid-column:1 / -1;text-align:center;padding:60px 20px;background:#fff;border-radius:12px;color:#666}.empty-state .hint{font-size:14px;color:#999;margin-top:8px}.modal-wide{max-width:800px!important;max-height:95vh;height:auto;display:flex;flex-direction:column;overflow:hidden}.modal-wide .shape-edit-layout{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:8px}.modal-wide .shape-form{overflow:visible;position:relative}.modal-wide .shape-form .form-group{margin-bottom:10px}.modal-wide .shape-form .form-group label{margin-bottom:4px;font-size:13px}.modal-wide .shape-form .form-row{gap:12px;margin-bottom:10px}.modal-wide .name-preview{margin-bottom:10px;font-size:12px}.modal-wide .checkbox-group{gap:12px}.modal-wide .checkbox-label{font-size:13px}.modal-wide .color-lists-row{align-items:flex-start}.modal-wide .color-list-container{display:flex;flex-direction:column;gap:6px}.modal-wide .color-chips{min-height:28px;padding:4px}.modal-wide .color-chip{padding:2px 6px;font-size:11px}.modal-wide textarea{resize:none}.shape-id-group label{font-weight:500;color:#555;min-width:50px}.shape-id-group input{width:80px;padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-weight:600;text-align:center}.shape-edit-layout{display:flex;gap:24px;margin-bottom:24px}.shape-preview{flex:0 0 200px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:12px;padding:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.shape-preview img{max-width:100%;max-height:180px;object-fit:contain}.shape-preview #change-image-btn{margin-top:8px}.shape-form{flex:1}.name-prefix-input{display:flex;align-items:center;border:1px solid #ddd;border-radius:8px;overflow:hidden}.name-prefix-input .name-prefix{background:#f0f0f0;padding:10px 12px;font-size:14px;font-family:monospace;color:#666;border-right:1px solid #ddd;white-space:nowrap}.name-prefix-input input{flex:1;border:none!important;border-radius:0!important;padding:10px 12px;font-size:14px;font-family:monospace}.name-prefix-input input:focus{outline:none;box-shadow:none}.name-preview{margin-top:6px;font-size:12px;color:#666}.name-preview code{background:#f0f0f0;padding:2px 6px;border-radius:4px;font-family:monospace;font-size:12px}.name-display{display:flex;align-items:center;font-family:monospace;font-size:12px}.name-prefix-inline{color:#888;white-space:nowrap}.inline-suffix{border:none;background:transparent;font-family:monospace;font-size:12px;padding:2px 4px;width:100px}.inline-suffix-wide{border:1px solid #ddd;background:#fff;font-family:monospace;font-size:12px;padding:4px 8px;width:100%;border-radius:4px;box-sizing:border-box}.inline-suffix:focus,.inline-suffix-wide:focus{outline:none;background:#fff;border:1px solid #007bff;border-radius:4px}.form-row{display:flex;gap:16px}.form-row .form-group{flex:1}.form-group input[type=text],.form-group input[type=number],.form-group textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;font-family:inherit}.form-group textarea{resize:vertical}.checkbox-group{display:flex;flex-wrap:wrap;gap:12px}.checkbox-label{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer}.checkbox-label input[type=checkbox]{width:16px;height:16px;cursor:pointer}.modal-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid #e9ecef;padding-top:16px;margin-top:16px}.modal-actions>div{display:flex;gap:12px}.header-actions{display:flex;gap:8px;flex-wrap:wrap}.btn-add-bottom{background:#fff3cd;color:#856404;border:1px solid #ffc107}.btn-add-bottom:hover{background:#ffe69c}.btn-add-top{background:#cce5ff;color:#004085;border:1px solid #007bff}.btn-add-top:hover{background:#9fcdff}.btn-add-shoes{background:#d4edda;color:#155724;border:1px solid #28a745}.btn-add-shoes:hover{background:#b1dfbb}.modal-picker{max-width:900px!important;max-height:90vh;height:calc(90vh - 40px);display:flex;flex-direction:column}.picker-hint{color:#666;margin-bottom:16px;font-size:14px;flex-shrink:0}.picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;overflow-y:auto;flex:1;min-height:200px;max-height:none;padding:4px}.modal-picker .upload-section{flex-shrink:0;margin-top:16px;padding-top:16px;border-top:1px solid #e9ecef}.modal-picker .modal-actions{flex-shrink:0}.picker-item{background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-radius:8px;padding:12px;cursor:pointer;transition:all .2s;display:flex;flex-direction:column;align-items:center;position:relative;border:2px solid transparent}.picker-item:hover:not(.used){border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 12px #667eea4d}.picker-item.used{opacity:.5;cursor:not-allowed}.picker-item img{max-width:100%;max-height:80px;object-fit:contain}.picker-id{margin-top:8px;font-size:12px;font-weight:600;color:#333}.picker-badge{position:absolute;top:4px;right:4px;background:#dc3545;color:#fff;font-size:9px;padding:2px 6px;border-radius:4px;font-weight:600}.no-images{grid-column:1 / -1;text-align:center;color:#999;padding:40px}.preview-id{margin-top:12px;font-size:14px;font-weight:600;color:#333;text-align:center}.preview-ids{margin-top:12px;display:flex;flex-direction:column;gap:8px}.preview-id-row{display:flex;align-items:center;gap:8px;justify-content:center}.preview-id-row label{font-size:13px;font-weight:500;color:#666;min-width:50px;text-align:right}.preview-id-row input[type=number]{width:80px;padding:6px 8px;border:1px solid #ddd;border-radius:6px;font-size:14px;text-align:center}.edit-id-status{min-width:70px;font-size:12px;font-weight:500}.edit-id-status .status-ok{color:#28a745}.edit-id-status .status-error{color:#dc3545}.edit-id-status .status-info{color:#6c757d;font-style:italic}.shapes-table{width:100%;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;border-collapse:collapse;overflow:hidden;table-layout:fixed}.shapes-table thead{background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.shapes-table th{padding:8px 4px;text-align:left;font-weight:600;font-size:10px;color:#666;text-transform:uppercase;letter-spacing:.3px;border-bottom:2px solid #e9ecef;white-space:nowrap}.shapes-table td{padding:4px;vertical-align:middle;border-bottom:1px solid #f0f0f0}.shapes-table tbody tr:hover{background:#f8f9fa}.shapes-table tbody tr:last-child td{border-bottom:none}.shapes-table .col-image{width:50px;text-align:center}.shapes-table .col-image img{width:40px;height:40px;object-fit:contain;border-radius:4px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);cursor:pointer;transition:transform .2s}.image-preview-popup{position:fixed;z-index:9999;pointer-events:none;background:#fff;border-radius:12px;box-shadow:0 8px 32px #0000004d;padding:8px;max-width:300px;max-height:400px}.image-preview-popup img{max-width:100%;max-height:380px;object-fit:contain;display:block;border-radius:8px}.shapes-table .col-id{width:70px;text-align:center}.shapes-table .col-id input.inline-id{width:60px;text-align:center;font-weight:600;color:#666;font-size:12px;padding:4px 2px}.shapes-table .col-level{width:60px}.shapes-table .col-file{width:70px;text-align:center}.shapes-table .col-file input.inline-id{width:60px;text-align:center;font-weight:600;color:#666;font-family:monospace;font-size:14px;padding:4px 2px}.shapes-table .col-type{width:140px}.shapes-table .col-type select{width:100%;font-size:11px;padding:4px}.shapes-table .col-order{width:50px;text-align:center}.shapes-table .col-order input.inline-order{width:45px;font-size:11px;padding:4px;text-align:center}.shapes-table .col-name{width:120px}.shapes-table .col-name input{width:100%;font-size:11px}.shapes-table .col-name-sk{width:100px}.shapes-table .col-name-sk input{width:100%;font-size:11px}.shapes-table .col-season{width:90px}.shapes-table .col-outfit{width:130px}.shapes-table .col-outfit select{width:100%;font-size:11px}.shapes-table .col-colors{width:70px}.shapes-table .col-prompt{width:200px}.shapes-table .col-prompt input{font-size:11px}.shapes-table .col-enabled{width:50px;text-align:center}.shapes-table .col-actions{width:60px;text-align:center}.shapes-table .col-usage{width:36px;text-align:center;padding:0 2px}.inline-edit{padding:3px 4px;border:1px solid transparent;border-radius:4px;font-size:11px;background:transparent;transition:all .2s;width:100%}.inline-edit:hover{border-color:#ddd;background:#fff}.inline-edit:focus{border-color:#667eea;background:#fff;outline:none;box-shadow:0 0 0 2px #667eea33}.inline-edit.missing-value{border-color:#dc3545;background-color:#fff5f5}.inline-edit.missing-value:focus{border-color:#dc3545;box-shadow:0 0 0 2px #dc354533}.inline-number{width:60px;text-align:center}.season-checkboxes{display:flex;gap:4px}.season-cb{display:flex;align-items:center;gap:2px;font-size:11px;color:#666;cursor:pointer;padding:2px 4px;border-radius:4px;transition:background .2s}.season-cb:hover{background:#e9ecef}.season-cb input[type=checkbox]{width:14px;height:14px;cursor:pointer}.outfit-set-checkboxes{display:flex;flex-direction:row;flex-wrap:wrap;gap:4px 8px}.outfit-set-cb{display:flex;align-items:center;gap:4px;font-size:11px;color:#666;cursor:pointer;padding:2px 4px;border-radius:4px;transition:background .2s;white-space:nowrap}.outfit-set-cb:hover{background:#e9ecef}.outfit-set-cb input[type=checkbox]{width:14px;height:14px;cursor:pointer}.field-error{background-color:#dc354533!important}.field-error select,.field-error input{border-color:#dc3545}.field-error .outfit-set-cb,.field-error .season-cb{color:#dc3545}.btn-icon{background:none;border:none;cursor:pointer;font-size:16px;padding:4px 6px;border-radius:4px;transition:background .2s}.btn-icon:hover{background:#e9ecef}.btn-icon.btn-delete:hover{background:#ffebee}.upload-section{margin-top:16px;padding:16px;background:#f8f9fa;border-radius:8px;border:2px dashed #ddd}.upload-section.drag-over{border-color:#667eea;background:#f0f4ff}.upload-input-row{display:flex;gap:12px;align-items:center;margin-bottom:12px;flex-wrap:wrap}.upload-input-row label{font-weight:500;font-size:13px;color:#666;white-space:nowrap}.upload-input-row input[type=number]{width:80px;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:14px}.upload-id-group{display:flex;align-items:center;gap:6px}.upload-id-status{min-width:70px;font-size:12px;font-weight:500}.upload-id-status .status-ok{color:#28a745}.upload-id-status .status-error{color:#dc3545}.upload-file-input{flex:1}.upload-file-input input[type=file]{width:100%}.upload-btn-row{display:flex;justify-content:flex-end;gap:8px}.upload-status{margin-top:12px;padding:8px 12px;border-radius:6px;font-size:13px}.upload-status.success{background:#d4edda;color:#155724}.upload-status.error{background:#f8d7da;color:#721c24}.shape-groups-layout{display:flex;gap:24px;min-height:calc(100vh - 200px);align-items:flex-start}#module-content:has(.shape-groups-layout){overflow:visible}.toggle-switch{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:13px;color:#666;-webkit-user-select:none;user-select:none}.toggle-switch input[type=checkbox]{width:16px;height:16px;cursor:pointer}.toggle-label{white-space:nowrap}.shapes-panel{width:280px;flex-shrink:0;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;max-height:calc(100vh - 180px);position:sticky;top:24px}.shapes-panel-header{padding:16px;border-bottom:1px solid #e9ecef}.shapes-panel-header h3{margin-bottom:12px;font-size:16px;color:#333}.shapes-panel-filters{display:flex;flex-direction:column;gap:8px}.shapes-panel-filters select{width:100%;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:13px}.shapes-panel-list{flex:1;overflow-y:auto;padding:12px}.no-shapes{color:#999;text-align:center;padding:20px;font-size:13px}.shape-drag-item{display:flex;align-items:center;gap:10px;padding:8px;margin-bottom:8px;background:#f8f9fa;border-radius:8px;cursor:grab;transition:all .2s;border:2px solid transparent}.shape-drag-item:hover{background:#e9ecef;border-color:#667eea}.shape-drag-item.dragging{opacity:.5;cursor:grabbing}.shape-drag-item img{width:60px;height:60px;object-fit:contain;border-radius:4px;background:#fff;cursor:pointer}.shape-drag-info{flex:1;min-width:0}.shape-drag-name{display:block;font-size:13px;font-weight:500;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.shape-drag-type{display:block;font-size:11px;color:#999}.groups-panel{flex:1;min-width:0}.groups-panel .toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.groups-panel .filter-group{display:flex;align-items:center;gap:16px}.groups-panel .filter-group select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:13px;min-width:120px}.groups-container{display:flex;flex-direction:column;gap:12px}.group-row{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.group-header{display:flex;justify-content:space-between;align-items:center;padding:16px;cursor:pointer;transition:background .2s}.group-header:hover{background:#f8f9fa}.group-info{display:flex;align-items:center;gap:12px}.group-expand-icon{font-size:12px;color:#999;width:16px}.group-name{font-weight:600;font-size:15px;color:#333}.group-note{font-size:13px;color:#666;font-style:italic;font-weight:600;max-width:400px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-count{font-size:13px;color:#999}.group-actions{display:flex;gap:4px}.group-shapes-area{padding:16px;background:#f8f9fa;border-top:1px solid #e9ecef;min-height:80px;transition:all .2s}.group-shapes-area.drag-over{background:#e8f0fe;border-color:#667eea}.group-shapes-list{display:flex;flex-wrap:wrap;gap:12px}.drop-hint{color:#999;font-size:13px;font-style:italic;width:100%;text-align:center;padding:20px}.group-shape-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a}.group-shape-item img{width:54px;height:54px;object-fit:contain;border-radius:4px;cursor:pointer}.group-shape-name{font-size:13px;color:#333}.btn-remove{background:none;border:none;color:#dc3545;font-size:18px;cursor:pointer;padding:0 4px;line-height:1;opacity:.6;transition:opacity .2s}.btn-remove:hover{opacity:1}.outfits-layout{display:flex;gap:24px;min-height:calc(100vh - 200px);align-items:flex-start}#module-content:has(.outfits-layout){overflow:visible}#module-content:has(.pyramids-layout){overflow:visible}.groups-drag-panel{width:320px;flex-shrink:0;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;display:flex;flex-direction:column;max-height:calc(100vh - 180px);position:sticky;top:24px}.groups-drag-panel-header{padding:16px;border-bottom:1px solid #e9ecef}.groups-drag-panel-header h3{margin-bottom:12px;font-size:16px;color:#333}.groups-drag-panel-filters select{width:100%;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:13px}.groups-drag-panel-list{flex:1;overflow-y:auto;padding:12px}.no-groups{color:#999;text-align:center;padding:20px;font-size:13px}.group-drag-item{padding:12px;margin-bottom:12px;background:#f8f9fa;border-radius:8px;cursor:grab;transition:all .2s;border:2px solid transparent}.group-drag-item:hover{background:#e9ecef;border-color:#667eea}.group-drag-item.dragging{opacity:.5;cursor:grabbing}.group-drag-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.group-drag-name{font-weight:500;font-size:14px;color:#333}.group-drag-count{font-size:12px;color:#999}.group-drag-shapes{display:flex;flex-wrap:wrap;gap:4px;align-items:center}.group-drag-shape-img{width:36px;height:36px;object-fit:contain;border-radius:4px;background:#fff}.group-drag-more{font-size:11px;color:#666;padding:4px 8px;background:#e9ecef;border-radius:4px}.outfits-panel{flex:1;min-width:0}.outfits-panel .toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.outfits-container{display:flex;flex-direction:column;gap:12px}.outfit-row{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.outfit-header{display:flex;justify-content:space-between;align-items:center;padding:16px;cursor:pointer;transition:background .2s;gap:16px}.outfit-header:hover{background:#f8f9fa}.outfit-info{display:flex;align-items:center;gap:12px;flex:1}.outfit-expand-icon{font-size:12px;color:#999;width:16px}.outfit-id{font-weight:600;font-size:14px;color:#666}.outfit-name{font-size:14px;color:#333;font-weight:500;cursor:pointer;padding:2px 8px;border-radius:4px;min-width:80px;min-height:20px;display:inline-block}.outfit-name:empty:before{content:"Click to add name...";color:#aaa;font-style:italic;font-weight:400}.outfit-name:hover{background:#f0f0f0}.outfit-name-input{font-size:14px;padding:2px 6px;border:1px solid #1976d2;border-radius:4px;outline:none;width:150px;background:#fff}.outfit-groups-summary{display:flex;gap:8px}.outfit-group-tag{font-size:12px;padding:4px 8px;border-radius:4px;white-space:nowrap}.outfit-group-tag.has-group{background:#e8f5e9;color:#2e7d32}.outfit-group-tag.no-group{background:#ffebee;color:#c62828}.outfit-meta{display:flex;gap:12px;font-size:12px;color:#666}.outfit-dress-code,.outfit-season{padding:4px 8px;background:#f0f0f0;border-radius:4px;white-space:nowrap}.outfit-actions{display:flex;gap:4px}.outfit-groups-area{display:flex;gap:16px;padding:16px;background:#f8f9fa;border-top:1px solid #e9ecef}.outfit-group-slot{flex:1;background:#fff;border-radius:8px;border:2px dashed #ddd;padding:12px;min-height:120px;transition:all .2s}.outfit-group-slot.drag-over{border-color:#667eea;background:#f0f4ff}.outfit-group-slot.level-1{border-color:#e57373}.outfit-group-slot.level-2{border-color:#64b5f6}.outfit-group-slot.level-3{border-color:#81c784}.outfit-group-slot-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.outfit-group-slot-name{font-weight:500;font-size:13px;color:#333;flex:1}.outfit-group-slot-empty{font-size:12px;color:#999;font-style:italic}.btn-remove-small{background:none;border:none;color:#dc3545;font-size:16px;cursor:pointer;padding:0 4px;line-height:1;opacity:.6}.btn-remove-small:hover{opacity:1}.outfit-group-shapes-list{display:flex;flex-wrap:wrap;gap:8px}.outfit-group-shape-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:4px;background:#f8f9fa;border-radius:6px}.outfit-group-shape-img{width:48px;height:48px;object-fit:contain;border-radius:4px;cursor:pointer}.outfit-group-shape-name{font-size:10px;color:#666;max-width:60px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.modal-preview{max-width:90vw;max-height:90vh;width:1200px}.preview-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.preview-count{font-size:14px;color:#666;background:#f0f0f0;padding:4px 12px;border-radius:12px}.preview-info{font-size:13px;color:#666;margin-bottom:16px}.preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;max-height:60vh;overflow-y:auto;padding:8px}.preview-combination{background:#f8f9fa;border-radius:12px;padding:12px;text-align:center}.preview-combination-number{font-size:11px;color:#999;margin-bottom:8px}.preview-combination-items{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.preview-item{width:100%;height:60px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:6px}.preview-item.empty{background:#e9ecef;color:#999}.preview-item img{max-width:100%;max-height:56px;object-fit:contain}.preview-combination-names{display:flex;flex-direction:column;gap:2px;font-size:10px;color:#666}.preview-combination-names span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.checkbox-group{display:flex;flex-wrap:wrap;gap:8px}.checkbox-label{display:flex;align-items:center;gap:4px;font-size:13px;cursor:pointer;padding:4px 8px;background:#f8f9fa;border-radius:4px;transition:background .2s}.checkbox-label:hover{background:#e9ecef}.checkbox-label input[type=checkbox]{width:14px;height:14px;cursor:pointer}.modal-content.modal-compact{max-width:600px}.modal-content.modal-compact h2{margin-bottom:16px;font-size:18px}.modal-content.modal-compact .form-group{margin-bottom:12px}.modal-content.modal-compact .form-group label{margin-bottom:4px;font-size:13px}.form-row-2col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.checkbox-group-compact{gap:4px}.checkbox-group-compact .checkbox-label{padding:2px 6px;font-size:12px}.checkbox-group-compact .checkbox-label input[type=checkbox]{width:12px;height:12px}.checkbox-group-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px}.checkbox-group-grid .checkbox-label{padding:4px 6px;font-size:11px;justify-content:flex-start}.checkbox-group-grid .checkbox-label input[type=checkbox]{width:12px;height:12px;flex-shrink:0}.checkbox-compact{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.form-hint-inline{font-weight:400;color:#999;font-size:11px}.outfit-sets-container{display:flex;flex-direction:column;gap:16px}.sets-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:16px}.set-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:transform .2s,box-shadow .2s}.set-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #00000026}.set-header{display:flex;justify-content:space-between;align-items:flex-start;padding:16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #e9ecef}.set-info{display:flex;flex-direction:column;gap:4px}.set-id{font-size:12px;color:#999;font-weight:600}.set-name{font-size:18px;font-weight:600;color:#333}.set-description{font-size:13px;color:#666;font-style:italic;font-weight:600}.set-actions{display:flex;gap:4px}.set-stats{display:flex;gap:16px;padding:12px 16px;background:#f8f9fa;border-bottom:1px solid #e9ecef}.set-stat{display:flex;gap:4px;font-size:13px}.stat-label{color:#666}.stat-value{font-weight:600;color:#333}.set-shapes-preview{display:flex;flex-wrap:wrap;gap:6px;padding:12px 16px;min-height:60px;align-items:center}.set-shape-preview-img{width:44px;height:44px;object-fit:contain;border-radius:6px;background:#f0f0f0;cursor:pointer;transition:transform .2s}.set-shape-preview-img:hover{transform:scale(1.1)}.set-shapes-more{font-size:12px;color:#666;padding:4px 8px;background:#e9ecef;border-radius:4px}.sets-list-expandable{display:flex;flex-direction:column;gap:12px}.set-row{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.set-row-header{display:flex;align-items:center;justify-content:space-between;padding:16px;cursor:pointer;transition:background .2s;gap:16px}.set-row-header:hover{background:#f8f9fa}.set-row-info{display:flex;align-items:center;gap:12px;flex:1}.set-expand-icon{font-size:12px;color:#999;width:16px}.set-stats-inline{display:flex;gap:8px}.stat-badge{font-size:12px;padding:4px 8px;background:#e9ecef;border-radius:4px;color:#666}.stat-badge.level-1{background:#ffebee;color:#c62828}.stat-badge.level-2{background:#e3f2fd;color:#1565c0}.stat-badge.level-3{background:#e8f5e9;color:#2e7d32}.set-shapes-expanded{padding:16px;background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;flex-direction:column;gap:16px}.set-level-section{background:#fff;border-radius:8px;padding:12px;border-left:4px solid #ddd}.set-level-section.level-1{border-left-color:#e57373}.set-level-section.level-2{border-left-color:#64b5f6}.set-level-section.level-3{border-left-color:#81c784}.set-level-header{display:flex;align-items:center;gap:8px;margin-bottom:12px}.set-level-count{font-size:13px;color:#999}.set-level-empty{font-size:13px;color:#999;font-style:italic;padding:8px 0}.set-level-shapes{display:flex;flex-wrap:wrap;gap:12px}.set-shape-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;background:#f8f9fa;border-radius:8px;transition:transform .2s}.set-shape-item:hover{transform:translateY(-2px)}.set-shape-img{width:60px;height:60px;object-fit:contain;border-radius:6px;background:#fff;cursor:pointer}.set-shape-name{font-size:11px;color:#666;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}@media (max-width: 768px){#sidebar{width:200px}#main-content{margin-left:200px}.module-header{flex-direction:column;align-items:flex-start;gap:16px}.filters{flex-direction:column;align-items:flex-start}.filter-group{width:100%}.filter-group select{flex:1}}.color-list-container{display:flex;flex-direction:column;gap:8px}.color-picker-row{display:flex;gap:8px;align-items:center}.color-select{flex:1;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:13px}.color-select option{padding:8px}.color-dropdown-container{position:relative;flex:1}.color-dropdown-trigger{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:13px;background:#fff;cursor:pointer;width:100%;box-sizing:border-box}.color-dropdown-trigger:hover{border-color:#aaa}.color-dropdown-trigger .color-preview{width:20px;height:20px;border-radius:4px;border:1px solid rgba(0,0,0,.2);flex-shrink:0}.color-dropdown-trigger .dropdown-arrow{margin-left:auto;font-size:10px;color:#666}.color-dropdown-list{position:absolute;top:100%;left:0;min-width:200px;max-height:200px;overflow-y:auto;background:#fff;border:1px solid #ddd;border-radius:6px;box-shadow:0 4px 12px #00000026;z-index:10000;display:none}.color-dropdown-list.open{display:block}.color-dropdown-list.open-upward{display:block;top:auto;bottom:100%;margin-bottom:2px}.color-dropdown-container{position:relative;z-index:100}.color-dropdown-item{display:flex;align-items:center;gap:8px;padding:6px 10px;cursor:pointer;font-size:12px}.color-dropdown-item:hover{background:#f0f0f0}.color-dropdown-item .color-swatch{width:20px;height:20px;border-radius:3px;border:1px solid rgba(0,0,0,.2);flex-shrink:0}.color-dropdown-item .color-info{font-size:12px;color:#333;white-space:nowrap}.color-chips{display:flex;flex-wrap:wrap;gap:6px;min-height:32px;padding:8px;background:#f8f9fa;border-radius:6px;border:1px solid #e9ecef}.color-chip{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:4px;font-size:12px;font-weight:600;border:1px solid rgba(0,0,0,.1);box-shadow:0 1px 2px #0000001a}.color-chip-remove{background:none;border:none;cursor:pointer;font-size:14px;font-weight:700;opacity:.7;padding:0 2px;margin-left:2px;color:inherit}.color-chip-remove:hover{opacity:1}.color-chips-inline{display:flex;flex-wrap:wrap;gap:3px;align-items:center}.color-chip-mini{display:inline-block;width:16px;height:16px;border-radius:3px;border:1px solid rgba(0,0,0,.15);box-shadow:0 1px 2px #0000001a;cursor:help}.col-colors{min-width:80px;max-width:120px}.col-colors .no-colors{color:#adb5bd;font-size:12px}.tools-layout{display:flex;flex-direction:column;gap:24px;padding:20px;max-width:900px}.tool-card{background:#fff;border-radius:8px;padding:24px;box-shadow:0 2px 4px #0000001a}.tool-card-danger{border:2px solid #dc3545;background:#fff5f5}.tool-card-danger h3{color:#dc3545}.tool-card h3{font-size:18px;margin-bottom:12px;color:#333}.tool-card p{color:#666;margin-bottom:8px;line-height:1.5}.tool-card .tool-note{font-size:13px;color:#888;font-style:italic}.tool-actions{display:flex;gap:12px;margin-top:16px}.tool-output{margin-top:16px;padding:16px;background:#f8f9fa;border-radius:6px;border:1px solid #e9ecef}.tool-output h4{font-size:14px;margin:16px 0 8px;color:#495057}.tool-output h4:first-child{margin-top:0}.tool-output pre{background:#e9ecef;padding:12px;border-radius:4px;font-size:12px;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:300px;overflow-y:auto}.tool-output .success-text{color:#28a745;font-weight:600;margin-bottom:12px}.tool-output .error-text{color:#dc3545;font-weight:600;margin-bottom:12px}.tool-output .warning-text{color:#856404;font-weight:600;margin-bottom:12px}.tool-output .info-text{color:#0c5460;font-weight:600;margin-bottom:12px}.tool-output .warning-box{background:#fff3cd;border:1px solid #ffc107;border-radius:6px;padding:12px 16px;margin:12px 0}.tool-output .warning-box strong{color:#856404}.tool-output .warning-note{color:#664d03;font-size:12px;margin:8px 0 4px}.tool-output .warning-list{max-height:200px;overflow-y:auto;font-size:11px;color:#664d03;margin:8px 0 0;padding-left:20px}.tool-output .warning-list li{margin:2px 0}.tool-output details{margin-top:8px}.tool-output details summary{cursor:pointer;color:#664d03;font-size:12px}.tool-output details summary:hover{text-decoration:underline}.tool-output .loading-text{color:#6c757d;font-style:italic}.tool-output table{width:100%;border-collapse:collapse;font-size:12px;margin-top:8px}.tool-output table th,.tool-output table td{padding:6px 10px;text-align:left;border-bottom:1px solid #dee2e6}.tool-output table th{background:#e9ecef;font-weight:600}.tool-card .doc-link{color:#667eea;text-decoration:none;font-style:normal}.tool-card .doc-link:hover{text-decoration:underline}.help-layout{display:flex;flex-direction:column;gap:24px;max-width:900px}.help-section{background:#fff;padding:24px;border-radius:12px;box-shadow:0 2px 8px #00000014}.help-section h3{font-size:20px;color:#333;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid #667eea}.help-section p{color:#555;line-height:1.6;margin-bottom:12px}.help-section ul,.help-section ol{margin-left:20px;color:#555;line-height:1.8}.help-section li{margin-bottom:6px}.help-section code{background:#f1f3f4;padding:2px 6px;border-radius:4px;font-family:Consolas,Monaco,monospace;font-size:13px;color:#d63384}.help-card{background:#f8f9fa;padding:16px 20px;border-radius:8px;margin-bottom:12px;border-left:4px solid #667eea}.help-card h4{font-size:16px;color:#333;margin-bottom:8px}.help-card p{font-size:14px;margin-bottom:8px}.help-card ul{font-size:13px;margin-bottom:0}.help-info-box{background:#fff3cd;border:1px solid #ffc107;padding:12px 16px;border-radius:8px;margin-top:12px}.help-info-box.info{background:#d1ecf1;border-color:#17a2b8}.help-info-box strong{color:#856404}.help-info-box.info strong{color:#0c5460}.help-workflow{display:flex;flex-direction:column;gap:16px;margin-top:16px}.workflow-step{display:flex;gap:16px;align-items:flex-start}.step-number{width:36px;height:36px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:16px;flex-shrink:0}.step-content{flex:1}.step-content h4{font-size:15px;color:#333;margin-bottom:4px}.step-content p{font-size:13px;color:#666;margin:0}.admin-list{list-style:none;margin-left:0!important}.admin-list li{padding:8px 12px;background:#f8f9fa;border-radius:4px;margin-bottom:4px;font-family:Consolas,Monaco,monospace;font-size:13px}.help-section a{color:#667eea;text-decoration:none}.help-section a:hover{text-decoration:underline}.row-disabled{opacity:.5;background-color:#f5f5f5!important}.row-disabled td,.row-disabled .group-header,.row-disabled .outfit-header,.row-disabled .set-row-header{background-color:#f5f5f5!important}.row-disabled .group-name,.row-disabled .outfit-id,.row-disabled .outfit-name,.row-disabled .set-name{text-decoration:line-through;color:#999}.enabled-toggle{display:inline-flex;align-items:center;cursor:pointer;margin-right:8px}.enabled-toggle input[type=checkbox],.enabled-checkbox{width:18px;height:18px;cursor:pointer;accent-color:#667eea}.col-enabled{text-align:center;width:60px}.cascade-disabled-hint{margin-left:8px;cursor:help;font-size:14px}.group-actions,.outfit-actions,.set-actions{display:flex;align-items:center;gap:4px}.colors-container{padding:0}.colors-filters{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a}.colors-filters .filter-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.colors-filters .filter-group{display:flex;flex-direction:column;gap:4px}.colors-filters .filter-group label{font-size:12px;color:#666;font-weight:500}.colors-filters .checkbox-inline{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer;padding:6px 0}.colors-filters .checkbox-inline input[type=checkbox]{margin:0}.colors-stats{margin-bottom:16px}.colors-stats .stats-row{display:flex;gap:24px;flex-wrap:wrap}.colors-stats .stat-item{font-size:13px;color:#666}.colors-stats .stat-item strong{color:#333}.shapes-filters,.groups-filters,.outfits-filters,.inspirations-filters,.outfit-sets-filters{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a}.shapes-filters .filter-row,.groups-filters .filter-row,.outfits-filters .filter-row,.inspirations-filters .filter-row,.outfit-sets-filters .filter-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.shapes-filters .filter-group,.groups-filters .filter-group,.outfits-filters .filter-group,.inspirations-filters .filter-group,.outfit-sets-filters .filter-group{display:flex;flex-direction:column;gap:4px}.shapes-filters .filter-group label,.groups-filters .filter-group label,.outfits-filters .filter-group label,.inspirations-filters .filter-group label,.outfit-sets-filters .filter-group label{font-size:12px;color:#666;font-weight:500}.shapes-stats,.groups-stats,.outfits-stats,.inspirations-stats,.outfit-sets-stats{margin-bottom:16px}.shapes-stats .stats-row,.groups-stats .stats-row,.outfits-stats .stats-row,.inspirations-stats .stats-row,.outfit-sets-stats .stats-row{display:flex;gap:24px;flex-wrap:wrap}.shapes-stats .stat-item,.groups-stats .stat-item,.outfits-stats .stat-item,.inspirations-stats .stat-item,.outfit-sets-stats .stat-item{font-size:13px;color:#666}.shapes-stats .stat-item strong,.groups-stats .stat-item strong,.outfits-stats .stat-item strong,.inspirations-stats .stat-item strong,.outfit-sets-stats .stat-item strong{color:#333}.colors-table{width:100%;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;border-collapse:collapse;overflow:hidden}.colors-table thead{background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.colors-table th{padding:12px 8px;text-align:left;font-weight:600;font-size:12px;color:#666;text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid #e9ecef}.colors-table td{padding:8px;vertical-align:middle;border-bottom:1px solid #f0f0f0}.colors-table tbody tr:hover{background:#f8f9fa}.colors-table tbody tr:last-child td{border-bottom:none}.colors-table .col-color{width:100px}.colors-table .col-id{width:50px;text-align:center;font-weight:600;color:#999}.colors-table .col-hex{width:90px}.colors-table .col-hex code{font-size:12px;background:#f8f9fa;padding:2px 6px;border-radius:4px}.colors-table .col-pivot{width:60px;text-align:center}.colors-table .col-temp{width:50px;text-align:center}.colors-table .col-order{width:50px;text-align:center;font-family:monospace;font-size:12px;color:#666}.colors-table .col-usage{width:80px}.colors-table .col-enabled{width:60px;text-align:center}.colors-table .col-actions{width:80px;text-align:right}.color-swatch{width:80px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;font-family:monospace;box-shadow:inset 0 0 0 1px #0000001a}.col-is-pivot{width:32px;text-align:center;padding:0 4px}.pivot-icon{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:#2196f3;color:#fff;border-radius:50%;font-size:12px;font-weight:700}.pivot-icon.not-pivot{background:transparent;color:#ccc}.col-origin{width:32px;text-align:center}.origin-badge{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:10px;font-weight:700}.origin-badge.original{background:#4caf50;color:#fff}.origin-badge.expanded{background:#9e9e9e;color:#fff;font-size:9px}.row-expanded{background-color:#f5f5f5}.row-expanded .pyramid-color-slot.readonly{opacity:.7;cursor:not-allowed}.pivot-single{color:#999;font-size:13px}.no-usage{color:#ccc}.temp-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:10px;font-weight:700;color:#fff}.temp-badge.temp-0{background:linear-gradient(135deg,#6c757d,#495057)}.temp-badge.temp-1{background:linear-gradient(135deg,#ff9800,#f57c00)}.temp-badge.temp-2{background:linear-gradient(135deg,#2196f3,#1976d2)}.pivot-badge{display:inline-flex;align-items:center;justify-content:center;padding:2px 6px;border-radius:10px;font-size:10px;font-weight:600;background:#e9ecef;color:#495057}.order-info{font-size:10px;color:#999;font-family:monospace}.color-usage{display:flex;gap:4px;margin-top:4px}.usage-badge{display:inline-flex;align-items:center;justify-content:center;padding:1px 5px;border-radius:8px;font-size:10px;font-weight:600}.usage-badge.whitelist{background:#d4edda;color:#155724}.usage-badge.blacklist{background:#f8d7da;color:#721c24}.usage-badge.usage-zero{background:#f0f0f0;color:#999}.color-actions{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;border-top:1px solid #e9ecef;background:#fff}.pivot-group{grid-column:1 / -1;background:#f8f9fa;border-radius:12px;padding:16px;margin-bottom:8px}.pivot-header{font-size:14px;font-weight:600;color:#495057;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #dee2e6}.pivot-colors{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.colors-legend{background:#fff;border-radius:12px;padding:16px;margin-top:24px;box-shadow:0 2px 8px #0000001a}.colors-legend h4{font-size:14px;color:#495057;margin-bottom:8px}.colors-legend h4:not(:first-child){margin-top:16px}.legend-items{display:flex;gap:24px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:13px;color:#666}.color-input-wrapper{display:flex;gap:8px;align-items:center}.color-input-wrapper input[type=color]{width:60px;height:40px;padding:2px;border:2px solid #dee2e6;border-radius:8px;cursor:pointer}.color-input-wrapper input[type=text]{flex:1;font-family:monospace;font-size:14px;text-transform:uppercase}.select-small{padding:8px 12px;border:1px solid #dee2e6;border-radius:6px;font-size:13px;background:#fff;cursor:pointer}.pyramids-layout{display:grid;grid-template-columns:200px 1fr;gap:16px;align-items:start}.colors-panel{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;position:sticky;top:16px;max-height:calc(100vh - 140px);overflow:hidden;display:flex;flex-direction:column}.colors-panel-header{padding:12px 16px;border-bottom:1px solid #e9ecef}.colors-panel-header h3{margin:0 0 4px;font-size:14px;color:#333}.colors-panel-header .hint{margin:0;font-size:11px;color:#888}.colors-panel-list{flex:1;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px}.color-drag-item{display:flex;align-items:center;gap:8px;padding:4px;background:#f8f9fa;border-radius:6px;cursor:grab;transition:all .2s}.color-drag-item:hover{background:#e9ecef}.color-drag-item.dragging{opacity:.5;cursor:grabbing}.color-drag-item.pivot-color{border:2px solid #667eea}.color-drag-swatch{width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:600;border:1px solid rgba(0,0,0,.1);flex-shrink:0}.color-drag-info{display:flex;flex-direction:column;gap:2px;min-width:0}.color-drag-hex{font-size:10px;font-family:monospace;color:#666}.pivot-marker{display:inline-block;background:#667eea;color:#fff;font-size:9px;font-weight:600;padding:1px 4px;border-radius:3px;width:fit-content}.pyramids-main-panel{min-width:0}.expanded-pyramids-info{background:#f0f7ff;border:1px solid #b3d4fc;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13px;color:#333}.expanded-pyramids-info p{margin:4px 0}.pyramids-filters{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a}.pyramids-filters .filter-row{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end}.pyramids-filters .filter-group{display:flex;flex-direction:column;gap:4px}.pyramids-filters .filter-group label{font-size:12px;color:#666;font-weight:500}.pyramids-stats{margin-bottom:16px}.pyramids-stats .stats-row{display:flex;gap:24px;flex-wrap:wrap}.pyramids-stats .stat-item{font-size:13px;color:#666}.pyramids-stats .stat-item strong{color:#333}.pyramids-table{width:100%;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;border-collapse:collapse;overflow:hidden}.pyramids-table thead{background:linear-gradient(135deg,#f8f9fa,#e9ecef)}.pyramids-table th{padding:8px 4px;text-align:center;font-weight:600;font-size:10px;color:#666;text-transform:uppercase;letter-spacing:.3px}.pyramids-table td{padding:4px;vertical-align:middle;border-bottom:1px solid #f0f0f0}.pyramids-table tbody tr:hover{background:#f8f9fa}.pyramids-table tbody tr:last-child td{border-bottom:none}.pyramids-table .col-id{width:50px;text-align:center;font-weight:600;color:#999;font-size:11px}.pyramids-table .col-color-large{width:44px;text-align:center;padding:4px 2px}.pyramids-table .col-sneakers,.pyramids-table .col-effect{width:50px;text-align:center}.pyramids-table .col-dress{width:80px}.pyramids-table .col-tip{width:80px;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:#666}.pyramids-table .col-enabled{width:40px;text-align:center}.pyramids-table .col-actions{width:60px;text-align:right}.pyramid-color-slot{width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;margin:0 auto;position:relative;transition:all .2s}.pyramid-color-slot.empty{background:#f8f9fa;border:2px dashed #dee2e6;color:#adb5bd}.pyramid-color-slot.empty .drop-icon{font-size:16px}.pyramid-color-slot.filled{border:1px solid rgba(0,0,0,.1)}.pyramid-color-slot.drag-over{border-color:#667eea;border-style:solid;background:#667eea1a;transform:scale(1.1)}.pyramid-color-slot .btn-clear-color{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;background:#dc3545;color:#fff;border:none;font-size:10px;line-height:1;cursor:pointer;display:none;padding:0}.pyramid-color-slot:hover .btn-clear-color{display:flex;align-items:center;justify-content:center}.color-swatch-small{width:32px;height:32px;border-radius:6px;border:1px solid rgba(0,0,0,.1);margin:0 auto}.color-swatch-tiny{width:20px;height:20px;border-radius:4px;border:1px solid rgba(0,0,0,.1)}.color-swatch-tiny.empty{background:repeating-linear-gradient(45deg,#f0f0f0,#f0f0f0 2px,#fff 2px,#fff 4px);border:1px dashed #ccc}.shoes-colors{display:flex;gap:4px}.effect-badge{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:50%;font-size:11px;font-weight:600}.dress-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:#e9ecef;color:#495057;border-radius:4px;font-size:10px;font-weight:600;margin-right:2px}.tip-badge{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:#ffc107;color:#000;border-radius:4px;font-size:10px;font-weight:600;margin-right:2px}.tip-block{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:12px;margin-bottom:12px}.tip-block h4{margin:0 0 8px;font-size:14px;color:#495057}.tip-block-compact{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:8px 12px;margin-bottom:8px}.tip-block-compact .tip-header{display:flex;align-items:center;gap:12px;margin-bottom:6px}.tip-block-compact .tip-dc-label{font-weight:600;font-size:13px;color:#495057;min-width:80px}.tip-block-compact .tip-key-display{font-size:11px;color:#6c757d;background:#e9ecef;padding:2px 6px;border-radius:3px}.tip-block-compact textarea{width:100%;padding:6px 8px;font-size:13px;border:1px solid #ced4da;border-radius:4px;resize:vertical;font-family:inherit;box-sizing:border-box}.tip-block-compact textarea:focus{outline:none;border-color:#6c5ce7;box-shadow:0 0 0 2px #6c5ce71a}.pyramids-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 16px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.pagination-info{font-size:13px;color:#666}.pagination-buttons{display:flex;gap:4px;align-items:center}.btn-page{min-width:36px;height:36px;padding:0 8px;border:1px solid #dee2e6;background:#fff;border-radius:6px;font-size:13px;color:#495057;cursor:pointer;transition:all .2s}.btn-page:hover:not(.disabled):not(.active){background:#f8f9fa;border-color:#adb5bd}.btn-page.active{background:#667eea;color:#fff;border-color:#667eea}.btn-page.disabled{opacity:.5;cursor:not-allowed}.page-ellipsis{padding:0 8px;color:#999}.modal-content.modal-large{max-width:800px;width:90%}.form-section{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #e9ecef}.form-section:last-of-type{border-bottom:none;margin-bottom:16px}.form-section h3{font-size:14px;font-weight:600;color:#495057;margin-bottom:16px}.checkbox-group,.radio-group{display:flex;flex-wrap:wrap;gap:8px}.checkbox-label,.radio-label{display:flex;align-items:center;gap:4px;padding:6px 10px;background:#f8f9fa;border-radius:6px;font-size:12px;cursor:pointer;transition:background .2s}.checkbox-label:hover,.radio-label:hover{background:#e9ecef}.checkbox-label input[type=checkbox],.radio-label input[type=radio]{margin:0}.code-hint{color:#888;font-size:11px;font-weight:400}.modal-content select,.modal-large select{position:relative;z-index:10;pointer-events:auto!important;cursor:pointer}#edit-effect{position:relative;z-index:100;pointer-events:auto!important}.btn-small{padding:6px 12px;font-size:12px}.expanded-colors-info{background:#f0f7ff;border:1px solid #b3d4fc;border-radius:8px;padding:12px 16px;margin-bottom:16px;font-size:13px;color:#333}.expanded-colors-info p{margin:4px 0}.expanded-colors-container{display:flex;flex-wrap:wrap;gap:16px}.color-group-card{background:#fff;border-radius:12px;padding:16px;box-shadow:0 2px 8px #0000001a;min-width:200px}.color-group-header{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #eee}.color-group-header .pivot-label{font-weight:600;font-size:14px}.color-group-header .variation-count{font-size:12px;color:#666;margin-left:auto}.color-group-colors{display:flex;flex-wrap:wrap;gap:8px}.color-group-colors .color-item{display:flex;flex-direction:column;align-items:center;gap:4px}.color-group-colors .color-item.pivot .color-swatch{border:2px solid #333}.color-group-colors .color-item.missing{background:#f8d7da;color:#721c24;padding:8px;border-radius:8px;font-size:11px}.color-group-colors .color-swatch{width:48px;height:48px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;position:relative}.color-group-colors .color-swatch .pivot-marker{position:absolute;top:2px;right:2px;background:#00000080;color:#fff;font-size:9px;padding:1px 4px;border-radius:4px}.color-group-colors .color-info{text-align:center}.color-group-colors .color-hex{font-size:10px;color:#666;font-family:monospace}.type-badge{display:inline-block;padding:2px 8px;border-radius:4px;font-size:11px;font-weight:500}.type-badge.pivot{background:#d4edda;color:#155724}.type-badge.variation{background:#e2e3e5;color:#383d41}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;display:flex;align-items:center;justify-content:center;z-index:2000}.modal-overlay .modal{position:relative;background:#fff;border-radius:16px;max-width:500px;width:90%;max-height:90vh;height:auto;overflow:hidden;box-shadow:0 10px 40px #0000004d}.conflict-modal{height:auto!important;max-height:fit-content!important}.conflict-modal .modal-header{padding:20px 24px 16px;border-bottom:1px solid #eee}.conflict-modal .modal-header h2{margin:0;font-size:18px;color:#dc3545}.conflict-modal .modal-body{padding:16px 24px}.conflict-warning{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:12px;margin-bottom:16px;color:#856404;font-size:14px}.conflict-versions{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}.version-info{background:#f8f9fa;padding:12px;border-radius:8px;font-size:13px}.version-info strong{color:#333}.version-date{font-family:monospace;color:#666}.conflict-question{font-weight:500;color:#333;margin-top:16px}.conflict-modal .modal-footer{padding:16px 24px 20px;border-top:1px solid #eee}.conflict-actions{display:flex;gap:12px;flex-wrap:wrap}.conflict-actions .btn{flex:1;min-width:120px;text-align:center}.presence-modal{max-width:420px;width:90%;height:auto!important;max-height:fit-content!important}.presence-header{display:flex;align-items:center;gap:12px;padding:20px 24px;border-radius:16px 16px 0 0}.presence-header.alone{background:linear-gradient(135deg,#d4edda,#c3e6cb)}.presence-header.not-alone{background:linear-gradient(135deg,#fff3cd,#ffeeba)}.presence-icon{font-size:32px}.presence-header h2{margin:0;font-size:20px;color:#333}.presence-body{padding:20px 24px}.presence-body p{margin:0 0 16px;color:#555;line-height:1.5}.presence-users{list-style:none;padding:0;margin:0 0 16px}.presence-users li{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#f8f9fa;border-radius:8px;margin-bottom:8px}.presence-users .user-email{font-weight:500;color:#333}.presence-users .user-time{font-size:12px;color:#888}.presence-warning{background:#fff3cd;border:1px solid #ffc107;border-radius:8px;padding:12px;color:#856404;font-size:13px;margin:0}.presence-footer{padding:16px 24px 20px;display:flex;justify-content:center}.presence-footer .btn{min-width:100px}.force-reload-section{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}.demo-wardrobe-layout{display:flex;gap:24px;padding:20px;height:calc(100vh - 180px);min-height:400px}.demo-wardrobe-panel{background:#fff;border-radius:8px;padding:16px;box-shadow:0 2px 4px #0000001a;display:flex;flex-direction:column;overflow:hidden}.demo-wardrobe-panel.shapes-panel{width:400px;flex-shrink:0}.demo-wardrobe-panel.wardrobe-panel{flex:1;min-width:0}.demo-wardrobe-panel h3{margin-bottom:16px;font-size:16px;color:#333;display:flex;align-items:center;gap:8px}.demo-wardrobe-panel h3 span{font-weight:400;color:#666;font-size:14px}.panel-filters{margin-bottom:16px;display:flex;gap:16px}.panel-filters .filter-group{display:flex;align-items:center;gap:8px}.panel-filters label{font-size:13px;color:#666}.panel-filters select{padding:6px 12px;border:1px solid #ddd;border-radius:4px;font-size:13px}.panel-actions{margin-bottom:16px;display:flex;justify-content:flex-end}.demo-wardrobe-panel .shapes-grid{flex:1;overflow-y:auto;min-height:0;display:flex;flex-wrap:wrap;gap:12px;align-content:start}.demo-wardrobe-panel .shapes-grid .shape-card{width:80px;flex-shrink:0}.shape-card{background:#f9f9f9;border:2px solid transparent;border-radius:8px;padding:8px;cursor:pointer;transition:all .2s;text-align:center}.shape-card:hover{border-color:#4a90d9;background:#eef5fc}.shape-card img{width:60px;height:80px;object-fit:contain}.shape-card .shape-name{font-size:10px;color:#666;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wardrobe-items-list{flex:1;overflow-y:auto;min-height:0}.wardrobe-level-section{margin-bottom:20px}.wardrobe-level-section h4{font-size:13px;color:#666;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid #eee}.wardrobe-items-grid{display:flex;flex-wrap:wrap;gap:12px}.wardrobe-items-grid .wardrobe-item-card{width:100px;flex-shrink:0}.wardrobe-item-card{background:#f9f9f9;border-radius:8px;overflow:hidden;position:relative}.wardrobe-item-card .item-image-wrapper{width:100%;height:80px;border-radius:8px 8px 0 0}.wardrobe-item-card .item-image-wrapper img{width:100%;height:100%;object-fit:contain;padding:8px}.wardrobe-item-card img{width:100%;height:80px;object-fit:contain;padding:8px}.wardrobe-item-card .item-info{padding:4px 8px 8px;display:flex;flex-direction:column;gap:2px}.wardrobe-item-card .item-shape-name{font-size:10px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wardrobe-item-card .item-color-name{font-size:9px;color:#999;font-family:monospace}.wardrobe-item-card .item-delete-btn{position:absolute;top:8px;right:8px;width:20px;height:20px;border:none;background:#dc3545e6;color:#fff;border-radius:50%;cursor:pointer;font-size:12px;line-height:1;opacity:0;transition:opacity .2s}.wardrobe-item-card:hover .item-delete-btn{opacity:1}.wardrobe-item-card .item-delete-btn:hover{background:#c82333}.wardrobe-item-card.error{background:#fee;color:#c00;padding:12px;font-size:11px}.empty-message{color:#999;font-size:13px;text-align:center;padding:40px 20px}.color-picker-modal-content{max-width:500px}.color-picker-preview{display:flex;align-items:center;gap:16px;margin-bottom:20px;padding:16px;background:#f5f5f5;border-radius:8px}.color-picker-preview img{width:60px;height:80px;object-fit:contain}.color-picker-preview span{font-size:14px;color:#333}.color-picker-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;margin-bottom:20px}.color-picker-item{width:100%;aspect-ratio:1;border-radius:4px;cursor:pointer;border:2px solid transparent;transition:all .2s}.color-picker-item:hover{transform:scale(1.1);border-color:#333;z-index:1}.posts-grid{display:flex;flex-direction:column;gap:12px;padding:16px 0}.post-card{background:#fff;border-radius:8px;overflow:hidden;box-shadow:0 1px 4px #0000001a;cursor:pointer;transition:transform .2s,box-shadow .2s;position:relative;display:flex;flex-direction:row;align-items:stretch;min-height:80px}.post-card:hover{transform:translate(4px);box-shadow:0 2px 8px #00000026}.post-card.unpublished{opacity:.7;border:2px dashed #ccc}.post-card.dragging{opacity:.5}.post-card.drag-ghost{opacity:.3}.post-card.drag-over{border:2px solid #667eea;background:#f0f4ff}.post-status{padding:4px 8px;border-radius:4px;font-size:10px;font-weight:600;white-space:nowrap}.post-status.published{background:#28a745;color:#fff}.post-status.draft{background:#6c757d;color:#fff}.post-image{width:80px;height:80px;min-width:80px;object-fit:cover;border-radius:4px}.post-no-image{width:80px;height:80px;min-width:80px;display:flex;align-items:center;justify-content:center;background:#f0f0f0;color:#999;font-size:11px;border-radius:4px}.post-text{flex:1;padding:8px 12px;font-size:13px;line-height:1.4;color:#333;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;min-width:0}.post-emojis{display:flex;gap:2px;flex-wrap:nowrap}.emoji-badge{font-size:14px;padding:2px}.post-reactions{display:flex;gap:4px;flex-wrap:nowrap}.reaction-badge{font-size:11px;padding:2px 6px;background:#e8f4f8;border-radius:10px;color:#333;white-space:nowrap}.no-reactions{font-size:11px;color:#999;font-style:italic}.post-meta{display:flex;align-items:center;gap:12px;padding:0 12px;font-size:11px;color:#666;white-space:nowrap}.post-card .drag-handle{display:flex;align-items:center;color:#999;font-size:14px;cursor:grab;padding:0 8px}.post-image-wrapper{display:flex;align-items:center;padding:8px}.post-content{flex:1;display:flex;flex-direction:column;justify-content:center;padding:8px 0;min-width:0}.post-info-row{display:flex;align-items:center;gap:12px;padding:0 12px;flex-shrink:0}.post-languages{font-size:12px;padding:0 4px}.post-date{font-weight:400;font-size:11px;color:#666}.post-reaction-count{color:#888}.post-modal{max-width:600px;max-height:90vh;overflow-y:auto}.post-modal .modal-body{padding:0}.post-modal .form-group{margin-bottom:12px}.post-modal .form-group label{margin-bottom:4px;font-size:13px}.post-modal .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.post-modal .modal-header h3{margin:0;font-size:16px}.post-modal .modal-close{background:none;border:none;font-size:24px;cursor:pointer;color:#666;padding:0;line-height:1}.post-modal .modal-close:hover{color:#333}.post-modal textarea{width:100%;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:13px;resize:none;font-family:inherit;min-height:60px}.post-modal textarea:focus{border-color:#667eea;outline:none}.post-modal .char-count{display:block;text-align:right;color:#999;font-size:12px;margin-top:4px}.image-upload-area{border:2px dashed #ddd;border-radius:6px;padding:12px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;min-height:80px;display:flex;align-items:center;justify-content:center}.image-upload-area:hover{border-color:#667eea;background:#f8f9ff}.image-upload-area .preview-image{max-width:100%;max-height:120px;border-radius:6px}.upload-placeholder{color:#999;font-size:14px}.emoji-selector{display:flex;gap:8px;flex-wrap:wrap}.emoji-checkbox{display:flex;align-items:center;gap:4px;cursor:pointer;padding:4px 8px;background:#f5f5f5;border-radius:6px;transition:background .2s}.emoji-checkbox:hover{background:#e8e8e8}.emoji-checkbox input[type=checkbox]{width:14px;height:14px}.emoji-label{font-size:16px}.checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:14px}.checkbox-label input[type=checkbox]{width:18px;height:18px}.post-modal .modal-footer{display:flex;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #eee}.posts-stats{margin-bottom:16px}.posts-stats .stats-row{display:flex;gap:24px;font-size:14px;color:#666}.posts-stats .stat-item strong{color:#333}.lang-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:2px solid #eee;padding-bottom:8px}.lang-tab{padding:8px 16px;border:none;background:#f5f5f5;border-radius:8px 8px 0 0;cursor:pointer;font-size:14px;transition:all .2s;display:flex;align-items:center;gap:6px}.lang-tab:hover{background:#e8e8e8}.lang-tab.active{background:#667eea;color:#fff}.lang-content{margin-bottom:8px}.post-textarea{width:100%;padding:12px;border:1px solid #ddd;border-radius:8px;font-size:14px;resize:vertical;font-family:inherit;min-height:100px}.post-textarea:focus{border-color:#667eea;outline:none}.translate-actions{display:flex;align-items:center;gap:12px;margin-top:8px;padding:8px;background:#f8f9ff;border-radius:8px}.translate-hint{font-size:12px;color:#999}.post-languages{font-size:12px;margin:8px 0;padding:4px 8px;background:#f5f5f5;border-radius:4px;display:inline-block}.reactions-modal{max-width:700px}.reactions-modal .post-preview{font-style:italic;color:#666;margin-bottom:16px;padding:12px;background:#f8f9fa;border-radius:8px;font-size:14px}.reactions-summary{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid #eee}.reaction-summary-item{padding:8px 16px;background:#f0f0f0;border-radius:20px;font-size:16px}.reactions-total{margin-left:auto;color:#666;font-size:14px}.reactions-table-container{max-height:400px;overflow-y:auto;border:1px solid #eee;border-radius:8px}.reactions-table{width:100%;border-collapse:collapse}.reactions-table thead{position:sticky;top:0;background:#667eea;color:#fff}.reactions-table th{padding:12px 16px;text-align:left;font-weight:500;font-size:13px}.reactions-table td{padding:10px 16px;border-bottom:1px solid #f0f0f0;font-size:14px}.reactions-table tbody tr:hover{background:#f8f9fa}.reactions-table .emoji-cell{font-size:20px;width:60px;text-align:center}.reactions-table .email-cell{word-break:break-all}.reactions-table .date-cell{color:#666;font-size:12px;white-space:nowrap}.reactions-table .no-data{text-align:center;color:#999;padding:32px}.btn-reactions{font-size:11px;padding:4px 8px;margin-left:auto}.post-meta{display:flex;align-items:center;gap:8px}.notifications-stats{margin-bottom:16px}.notifications-stats .stats-row{display:flex;gap:24px;font-size:14px;color:#666}.notifications-stats .stat-item strong{color:#333}.notifications-list{display:flex;flex-direction:column;gap:10px}.notification-card{background:#fff;border-radius:8px;padding:12px 16px;box-shadow:0 1px 4px #00000014;border-left:3px solid #667eea;display:flex;flex-direction:row;align-items:center;gap:16px}.notification-card.sent{border-left-color:#28a745}.notification-card.failed{border-left-color:#dc3545}.notification-card.draft{border-left-color:#ffc107}.notification-header{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:100px;flex-shrink:0}.notification-status{font-size:10px;font-weight:500;padding:2px 8px;border-radius:10px}.notification-status.sent{background:#d4edda;color:#155724}.notification-status.failed{background:#f8d7da;color:#721c24}.notification-status.draft{background:#fff3cd;color:#856404}.notification-date{font-size:11px;color:#888}.notification-content{flex:1;min-width:0}.notification-title{font-size:13px;font-weight:600;margin:0 0 2px;color:#333;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.notification-body{font-size:12px;color:#666;margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.notification-languages{font-size:11px;padding:2px 6px;background:#f5f5f5;border-radius:4px;flex-shrink:0}.notification-results{display:flex;gap:8px;font-size:11px;flex-shrink:0}.notification-results .sent-count{color:#28a745}.notification-results .failed-count{color:#dc3545}.notification-actions{display:flex;gap:6px;flex-shrink:0}.empty-state{text-align:center;color:#999;padding:48px;font-size:14px}.notification-modal{max-width:550px;max-height:90vh;overflow-y:auto}.notification-modal .modal-body{padding:0}.notification-modal .form-group{margin-bottom:10px}.notification-modal .form-group label{margin-bottom:4px;font-size:13px}.notification-modal .modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.notification-modal .modal-header h3{margin:0;font-size:16px}.notification-modal .notif-input{width:100%;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit}.notification-modal .notif-input:focus{border-color:#667eea;outline:none}.notification-modal .notif-textarea{width:100%;padding:8px;border:1px solid #ddd;border-radius:6px;font-size:13px;resize:none;font-family:inherit;min-height:50px}.notification-modal .notif-textarea:focus{border-color:#667eea;outline:none}.notification-modal .modal-footer{margin-top:12px;padding-top:12px;gap:8px}.notification-preview{margin-top:12px;padding:10px;background:#f8f9fa;border-radius:8px}.notification-preview h4{margin:0 0 8px;font-size:11px;color:#666;text-transform:uppercase;letter-spacing:.5px}.preview-card{display:flex;gap:8px;padding:8px;background:#fff;border-radius:6px;box-shadow:0 1px 4px #0000001a}.preview-icon{font-size:20px}.preview-content{flex:1}.preview-content strong{display:block;font-size:12px;margin-bottom:2px}.preview-content p{margin:0;font-size:11px;color:#666}.btn-success{background:#28a745;color:#fff}.btn-success:hover{background:#218838}.images-management-filters{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a}.images-management-filters .filter-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.images-management-filters .filter-group{display:flex;align-items:center;gap:8px}.images-management-filters .filter-group label{font-weight:500;color:#666;font-size:14px}.images-management-filters .filter-group select{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;min-width:140px}.images-management-filters .filter-spacer{flex:1}.images-stats{background:#fff;border-radius:12px;padding:16px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a}.images-stats .stats-row{display:flex;flex-wrap:wrap;gap:16px;align-items:center}.images-stats .stat-item{font-size:14px;color:#666}.images-stats .stat-item strong{color:#333;font-weight:600}.images-stats .stat-success strong{color:#28a745}.images-stats .stat-warning strong{color:#dc3545}.images-stats .stat-divider{color:#ddd}.images-upload-section{background:#fff;border-radius:12px;padding:16px 20px;margin-bottom:16px;box-shadow:0 2px 8px #0000001a}.images-upload-section h4{margin:0 0 12px;font-size:14px;color:#666}.images-upload-section .upload-input-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.images-upload-section .upload-id-group select{padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px}.images-management-grid{display:flex;flex-direction:column;gap:24px}.images-level-section{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #0000001a}.images-level-section .level-header{font-size:18px;font-weight:600;margin:0 0 16px;padding-bottom:12px;border-bottom:2px solid #e9ecef;display:flex;align-items:center;gap:12px}.images-level-section .level-header.level-1{border-bottom-color:#e57373;color:#c62828}.images-level-section .level-header.level-2{border-bottom-color:#64b5f6;color:#1565c0}.images-level-section .level-header.level-3{border-bottom-color:#81c784;color:#2e7d32}.images-level-section .level-count{font-size:14px;font-weight:400;color:#666}.images-level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.image-card{background:#f8f9fa;border-radius:10px;overflow:hidden;border:2px solid transparent;transition:all .2s}.image-card.used{border-color:#28a745}.image-card.unused{border-color:#dc3545;background:#fff5f5}.image-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.image-card .image-preview{width:100%;aspect-ratio:1;background:#fff;display:flex;align-items:center;justify-content:center;padding:12px}.image-card .image-preview img{max-width:100%;max-height:100%;object-fit:contain}.image-card .image-info{padding:12px;display:flex;flex-direction:column;gap:6px}.image-card .image-id{font-size:14px;font-weight:600;color:#333}.image-card .image-shape{font-size:12px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.image-card .image-status{font-size:12px;font-weight:500;padding:4px 8px;border-radius:4px;text-align:center}.image-card .image-status.used{background:#d4edda;color:#155724}.image-card .image-status.used.disabled{background:#fff3cd;color:#856404}.image-card .image-status.unused{background:#f8d7da;color:#721c24}.image-card .delete-image-btn{width:100%;margin-top:4px}.image-card .image-actions{display:flex;gap:8px;margin-top:8px;justify-content:center}.image-card .image-actions .btn-icon{width:36px;height:36px;border:none;border-radius:8px;background:#e9ecef;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}.image-card .image-actions .btn-icon:hover{background:#dee2e6;transform:scale(1.1)}.image-card .image-actions .btn-icon.add-shape-btn{background:#d4edda}.image-card .image-actions .btn-icon.add-shape-btn:hover{background:#c3e6cb}.image-card .image-actions .btn-icon.download-image-btn{background:#cce5ff}.image-card .image-actions .btn-icon.download-image-btn:hover{background:#b8daff}.image-card .image-actions .btn-icon.btn-icon-danger{background:#f8d7da}.image-card .image-actions .btn-icon.btn-icon-danger:hover{background:#f5c6cb}.image-card .image-actions .btn-icon.replace-image-btn{background:#e7f3ff}.image-card .image-actions .btn-icon.replace-image-btn:hover{background:#cce5ff}.image-card.uploading{opacity:.6;pointer-events:none;position:relative}.image-card.uploading:after{content:"Uploading...";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#000000b3;color:#fff;padding:8px 16px;border-radius:4px;font-size:12px}.shape-ids-row{display:flex;gap:24px;margin-bottom:16px;padding:12px 16px;background:#f8f9fa;border-radius:8px}.shape-id-group{display:flex;align-items:center;gap:8px}.shape-id-group label{font-weight:500;color:#666;font-size:14px}.shape-id-group input{width:80px;padding:6px 10px;border:1px solid #ddd;border-radius:6px;font-size:14px;text-align:center}.shape-id-group input[readonly]{background:#e9ecef;color:#666}.picker-item.current{border:3px solid #28a745;background:#d4edda}.picker-badge.current-badge{background:#28a745}.notice{padding:12px 16px;border-radius:8px;margin-bottom:16px;font-size:14px}.notice-info{background:#e3f2fd;border:1px solid #90caf9;color:#1565c0}.notice-info strong{color:#0d47a1}.modal-content-wide{max-width:600px}.palette-overrides-section{margin-top:24px;padding-top:24px;border-top:1px solid #e0e0e0}.palette-overrides-section h3{font-size:16px;margin-bottom:8px;color:#333}.palette-overrides-section>.hint{margin-bottom:16px;font-size:13px;color:#666}.palette-overrides-list{display:flex;flex-direction:column;gap:12px}.palette-override-item{display:flex;align-items:center;gap:16px;padding:12px;background:#f8f9fa;border-radius:8px}.palette-override-header{flex:1;min-width:140px}.palette-override-header .checkbox-label{display:flex;align-items:center;gap:8px;cursor:pointer}.palette-override-header .palette-name{font-weight:500}.palette-override-fields{display:flex;align-items:center;gap:12px}.palette-override-fields.disabled{opacity:.4;pointer-events:none}.color-input-wrapper-small{display:flex;align-items:center;gap:8px}.color-input-wrapper-small input[type=color]{width:36px;height:36px;border:1px solid #ddd;border-radius:4px;padding:2px;cursor:pointer}.color-input-wrapper-small input[type=text]{width:90px;padding:8px;font-size:13px;font-family:monospace;border:1px solid #ddd;border-radius:4px}.palette-temp-select{padding:8px 12px;font-size:13px;border:1px solid #ddd;border-radius:4px;background:#fff}.send-results-summary{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.result-item{display:flex;justify-content:space-between;padding:8px 12px;background:#f8f9fa;border-radius:6px;font-size:13px}.result-item.result-success{background:#d4edda}.result-item.result-failed{background:#f8d7da}.result-value{font-weight:700}.send-errors{margin-top:16px}.send-errors h4{margin:0 0 8px;font-size:14px;color:#dc3545}.errors-table{width:100%;border-collapse:collapse;font-size:12px}.errors-table th,.errors-table td{padding:6px 8px;border:1px solid #dee2e6;text-align:left}.errors-table th{background:#f8f9fa;font-weight:600}.error-text{color:#dc3545;font-family:monospace;font-size:11px}.diagnostics-section{margin-bottom:16px;padding:12px;background:#f8f9fa;border-radius:6px}.diagnostics-section h4{margin:0 0 8px;font-size:14px}.diag-row{font-size:13px;padding:4px 0}.diagnostics-errors{background:#fff5f5}.diag-error{font-size:12px;color:#dc3545;padding:4px 8px;background:#f8d7da;border-radius:4px;margin:4px 0;font-family:monospace}.dc-config-description{font-size:14px;color:#666;margin-bottom:24px;line-height:1.5}.dc-config-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}.dc-config-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden;transition:box-shadow .2s,transform .2s}.dc-config-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-1px)}.dc-config-card.dc-card-configured{border-left:4px solid #28a745}.dc-config-card.dc-card-unconfigured{border-left:4px solid #ffc107}.dc-card-header{display:flex;align-items:center;gap:10px;padding:14px 16px;background:linear-gradient(135deg,#f8f9fa,#e9ecef);border-bottom:1px solid #e9ecef}.dc-card-id{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:#6c757d;color:#fff;font-size:13px;font-weight:700;flex-shrink:0}.dc-card-configured .dc-card-id{background:#28a745}.dc-card-unconfigured .dc-card-id{background:#ffc107;color:#333}.dc-card-name{font-weight:600;font-size:15px;color:#333;flex:1}.dc-card-status-icon{font-size:20px;flex-shrink:0}.dc-card-body{padding:16px;display:flex;flex-direction:column;gap:14px}.dc-card-label{display:block;font-size:12px;font-weight:500;color:#888;text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px}.dc-shoe-select{width:100%;padding:10px 36px 10px 14px;border:2px solid #e9ecef;border-radius:8px;font-size:14px;font-weight:500;color:#333;background:#fff;cursor:pointer;transition:border-color .2s,box-shadow .2s;-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23666' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center}.dc-shoe-select:hover{border-color:#adb5bd}.dc-shoe-select:focus{outline:none;border-color:#4a90d9;box-shadow:0 0 0 3px #4a90d926}.dc-card-configured .dc-shoe-select{border-color:#c3e6cb;background-color:#f8fff9}.dc-card-unconfigured .dc-shoe-select{border-color:#ffeeba;background-color:#fffdf5}.dc-shoe-select-secondary{border-style:dashed}
