@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size: 12px;--rc-drag-handle-mobile-size: 24px;--rc-drag-handle-bg-colour: rgba(0, 0, 0, .2);--rc-drag-bar-size: 6px;--rc-border-color: rgba(255, 255, 255, .7);--rc-focus-color: #0088ff}.ReactCrop{position:relative;display:inline-block;cursor:crosshair;max-width:100%}.ReactCrop *,.ReactCrop *:before,.ReactCrop *:after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{overflow:hidden;max-height:inherit}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{display:block;max-width:100%;max-height:inherit}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video{touch-action:none}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{position:absolute;inset:0;pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px)}.ReactCrop__crop-selection{position:absolute;top:0;left:0;transform:translateZ(0);cursor:move}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";position:absolute;inset:-1px;border:1px solid var(--rc-border-color);opacity:.3}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed white}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){animation:marching-ants 1s;background-image:linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to right,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%),linear-gradient(to bottom,#fff 50%,#444 50%);background-size:10px 1px,10px 1px,1px 10px,1px 10px;background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;color:#fff;animation-play-state:running;animation-timing-function:linear;animation-iteration-count:infinite}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";display:block;position:absolute;background-color:#fff6}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333333333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6666666667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333333333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6666666667%}.ReactCrop__drag-handle{position:absolute;width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color)}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{top:0;left:0;transform:translate(-50%,-50%);cursor:nw-resize}.ReactCrop .ord-n{top:0;left:50%;transform:translate(-50%,-50%);cursor:n-resize}.ReactCrop .ord-ne{top:0;right:0;transform:translate(50%,-50%);cursor:ne-resize}.ReactCrop .ord-e{top:50%;right:0;transform:translate(50%,-50%);cursor:e-resize}.ReactCrop .ord-se{bottom:0;right:0;transform:translate(50%,50%);cursor:se-resize}.ReactCrop .ord-s{bottom:0;left:50%;transform:translate(-50%,50%);cursor:s-resize}.ReactCrop .ord-sw{bottom:0;left:0;transform:translate(-50%,50%);cursor:sw-resize}.ReactCrop .ord-w{top:50%;left:0;transform:translate(-50%,-50%);cursor:w-resize}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{top:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{right:0;top:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{bottom:0;left:0;width:100%;height:var(--rc-drag-bar-size);transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{top:0;left:0;width:var(--rc-drag-bar-size);height:100%;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media(pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-bg: #0f0f0f;--color-surface: #1a1a1a;--color-surface-hover: #242424;--color-border: #2a2a2a;--color-text: #e8e8e8;--color-text-secondary: #888;--color-accent: #6c5ce7;--color-accent-hover: #7c6cf7;--color-danger: #e74c3c;--radius: 8px;--radius-lg: 12px}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100dvh}a{color:var(--color-accent);text-decoration:none}button{cursor:pointer;border:none;font:inherit}input,textarea{font:inherit;color:inherit}.container{max-width:960px;margin:0 auto;padding:0 16px}.header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--color-border);background:var(--color-surface);position:sticky;top:0;z-index:100}.header h1{font-size:1.2rem;font-weight:700;letter-spacing:-.02em}.header h1 a{color:var(--color-text)}.header-nav{display:flex;align-items:center;gap:8px}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:var(--radius);font-size:.875rem;font-weight:500;transition:background .15s}.btn-primary{background:var(--color-accent);color:#fff}.btn-primary:hover{background:var(--color-accent-hover)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-surface-hover);color:var(--color-text)}.btn-danger{background:var(--color-danger);color:#fff}.btn-danger:hover{background:#c0392b}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding:24px 0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color .15s}.card:hover{border-color:var(--color-accent)}.card-thumb{aspect-ratio:16 / 10;background:var(--color-surface-hover);display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary);font-size:2rem;overflow:hidden}.card-thumb img{width:100%;height:100%;object-fit:cover}.card-body{padding:12px 16px}.card-body h3{font-size:1rem;font-weight:600;margin-bottom:4px}.card-body p{font-size:.8rem;color:var(--color-text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.form-group{margin-bottom:20px}.form-group label{display:block;font-size:.85rem;font-weight:500;color:var(--color-text-secondary);margin-bottom:6px}.form-input{width:100%;padding:10px 12px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);outline:none;transition:border-color .15s}.form-input:focus{border-color:var(--color-accent)}textarea.form-input{min-height:120px;resize:vertical}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.image-item{position:relative;aspect-ratio:1;border-radius:var(--radius);overflow:hidden;background:var(--color-surface-hover)}.image-item img{width:100%;height:100%;object-fit:cover}.image-item .image-delete{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;background:#000000b3;color:#fff;display:flex;align-items:center;justify-content:center;font-size:.75rem;opacity:0;transition:opacity .15s}.image-item:hover .image-delete,.image-item:hover .image-thumbnail-btn,.image-item:hover .image-crop-btn{opacity:1}.image-thumbnail-btn,.image-crop-btn{position:absolute;bottom:6px;left:6px;padding:3px 8px;border-radius:4px;background:#6c5ce7d9;color:#fff;font-size:.65rem;opacity:0;transition:opacity .15s}.image-crop-btn{left:auto;right:6px;background:#fff3}.image-crop-btn:hover{background:#ffffff59}.modal-overlay{position:fixed;inset:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;padding:16px}.modal-content{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);max-width:90vw;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--color-border)}.modal-header h3{font-size:1rem;font-weight:600}.modal-body{padding:16px;overflow:auto;display:flex;justify-content:center}.modal-footer{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--color-border)}.crop-loading-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;z-index:10;color:#fff;font-size:.9rem;font-weight:500}.crop-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.2);border-top-color:var(--color-accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.image-label{position:absolute;bottom:0;left:0;right:0;padding:4px 8px;background:#0009;font-size:.7rem;color:#fff}.upload-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:32px;text-align:center;color:var(--color-text-secondary);cursor:pointer;transition:border-color .15s,background .15s}.upload-zone:hover,.upload-zone.dragover{border-color:var(--color-accent);background:#6c5ce70d}.detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px 0 16px}.detail-header h2{font-size:1.5rem;font-weight:700}.detail-section{padding:16px 0}.detail-section h3{font-size:.9rem;font-weight:600;color:var(--color-text-secondary);margin-bottom:12px;text-transform:uppercase;letter-spacing:.05em}.settings-list{display:flex;flex-direction:column;gap:8px}.settings-row{display:flex;gap:8px;align-items:center}.settings-row input{flex:1}.empty-state{text-align:center;padding:80px 24px;color:var(--color-text-secondary)}.empty-state h2{font-size:1.2rem;margin-bottom:8px;color:var(--color-text)}.loading{display:flex;justify-content:center;padding:40px;color:var(--color-text-secondary)}.page{padding:0 16px 40px;max-width:960px;margin:0 auto}.actions{display:flex;gap:8px}.gen-input-area{display:flex;flex-direction:column;gap:12px;margin-bottom:24px}.gen-prompt-input{min-height:80px;resize:vertical}.gen-options{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.gen-options select{padding:8px 12px;min-width:100px}.gen-error{padding:8px 12px;background:#e74c3c26;border:1px solid var(--color-danger);border-radius:var(--radius);color:var(--color-danger);font-size:.85rem}.gen-loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px;color:var(--color-text-secondary)}.mention-badges{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.mention-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:#6c5ce733;border:1px solid var(--color-accent);border-radius:20px;font-size:.8rem;cursor:pointer;transition:background .15s}.mention-badge:hover{background:#6c5ce759}.mention-badge-name{font-weight:600;color:var(--color-accent)}.mention-badge-count{color:var(--color-text-secondary);font-size:.7rem}.mention-badge-remove{width:18px;height:18px;border-radius:50%;background:#ffffff1a;color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;font-size:.65rem;line-height:1}.mention-badge-remove:hover{background:var(--color-danger);color:#fff}.mention-total{font-size:.75rem;color:var(--color-text-secondary);margin-left:4px}.mention-dropdown{position:absolute;bottom:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:4px;z-index:200;box-shadow:0 -4px 16px #0006}.mention-dropdown-item{display:flex;align-items:center;gap:10px;padding:8px 12px;cursor:pointer;font-size:.85rem;transition:background .1s}.mention-dropdown-item:hover,.mention-dropdown-item.active{background:var(--color-surface-hover)}.mention-dropdown-thumb{width:32px;height:32px;border-radius:6px;overflow:hidden;background:var(--color-surface-hover);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--color-text-secondary);flex-shrink:0}.mention-dropdown-thumb img{width:100%;height:100%;object-fit:cover}.gen-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.gen-gallery-item{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.gen-gallery-item img{width:100%;display:block}.gen-gallery-info{padding:10px 12px}.gen-gallery-info p{font-size:.8rem;color:var(--color-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-bottom:4px}.gen-gallery-info span{font-size:.7rem;color:var(--color-text-secondary)}@media(max-width:600px){.card-grid{grid-template-columns:1fr}.image-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.gen-gallery{grid-template-columns:1fr}}
