.gal-root{color:#e0e0e0;background-color:#0d0d12;grid-area:main-content-section;padding:8px 40px;font-family:Inter,sans-serif;overflow-y:auto}.gal-header{justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.gal-header__left{align-items:baseline;gap:14px;display:flex}.gal-title{letter-spacing:-.5px;color:#fff;margin:0;font-size:30px;font-weight:800}.gal-count{color:#aaa;text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:600}.gal-create-btn{color:#fff;cursor:pointer;letter-spacing:.04em;background:#8030ff;border:none;border-radius:6px;padding:9px 22px;font-size:14px;font-weight:700;transition:background .15s}.gal-create-btn:hover{background:#6e16fc}.gal-action-btn{color:#aaa;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;background:0 0;border:2px solid #757575;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s}.gal-action-btn:hover{color:#a78bfa;border-color:#a78bfa}.gal-action-btn--danger:hover{color:#e03030;border-color:#e03030}.gal-divider{background:#2a2a3a;height:4px;margin:18px 0}.gal-toolbar{flex-wrap:wrap;align-items:center;gap:14px;margin:16px 0 0;display:flex}.gal-search-wrap{box-sizing:border-box;background-color:#2e2e42;border-radius:6px;flex:1;align-items:center;gap:10px;max-width:360px;padding:10px 20px;transition:background-color .15s;display:flex}.gal-search-wrap:hover,.gal-search-wrap:focus-within{background-color:#3a3a54}.gal-search-icon{color:#aaa;pointer-events:none;flex-shrink:0}.gal-search{color:#aaa;background:0 0;border:none;outline:none;width:100%;font-family:Inter,sans-serif;font-size:16px}.gal-search::placeholder{color:#aaa}.gal-sorts{align-items:center;gap:8px;display:flex}.gal-sort-btn{color:#aaa;cursor:pointer;background:0 0;border:2px solid #757575;border-radius:6px;padding:8px 14px;font-family:Inter,sans-serif;font-size:14px;font-weight:600;transition:color .15s,border-color .15s}.gal-sort-btn:hover,.gal-sort-btn--on{color:#c4f;border-color:#c4f}.gal-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;display:grid}.gal-card{cursor:pointer;background:#2c3049;border:1px solid #2e2e48;border-radius:6px;transition:border-color .2s,transform .2s;overflow:hidden}.gal-card:hover{transform:translateY(-2px)}.gal-card__cover{background:#000;height:200px;position:relative;overflow:hidden}.gal-card__mosaic{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:2px;width:100%;height:100%;display:grid}.gal-card__mosaic-img{object-fit:cover;will-change:transform;backface-visibility:hidden;width:100%;height:100%;transition:transform .35s;display:block}.gal-card:hover .gal-card__mosaic-img{transform:scale(1.01)}.gal-card__cover,.gal-book-card__img-wrap{backface-visibility:hidden;transform:translateZ(0)}.gal-card__single-img{object-fit:cover;will-change:transform;backface-visibility:hidden;width:100%;height:100%;transition:transform .35s;display:block}.gal-card:hover .gal-card__single-img{transform:scale(1.01)}.gal-card__overlay{background:0 0;transition:background .2s;position:absolute;inset:0}.gal-card:hover .gal-card__overlay{background:#8030ff26}.gal-card__count-badge{color:#ccc;letter-spacing:.04em;text-transform:uppercase;background:#0d0d12d9;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:700;position:absolute;bottom:8px;right:8px}.gal-card__info{flex-direction:column;place-items:center;gap:4px;padding:12px 14px;display:flex}.gal-card__name{color:#f0f0f0;font-size:16px;font-weight:700}.gal-card__meta{color:#aaa;text-transform:uppercase;letter-spacing:.05em;font-size:12px}.gal-detail-nav{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.gal-back-btn{color:#aaa;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;background:0 0;border:2px solid #757575;border-radius:6px;padding:7px 16px;font-size:13px;font-weight:600;transition:border-color .15s,color .15s}.gal-back-btn:hover{color:#c4f}.gal-detail__hero{grid-template-columns:180px 1fr;align-items:stretch;column-gap:28px;margin-bottom:8px;display:grid}.gal-detail__cover-wrap{border-radius:8px;flex-shrink:0;width:180px;height:230px;position:relative;overflow:hidden}.gal-detail__cover{object-fit:cover;width:100%;height:100%;display:block}.gal-detail__cover-gradient{background:linear-gradient(#0000 40%,#0d0d12b3);position:absolute;inset:0}.gal-detail__hero-right{flex-direction:column;justify-content:space-between;min-width:0;display:flex}.gal-detail__hero-text{flex-direction:column;gap:6px;min-width:0;display:flex}.gal-detail__name{color:#fff;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:28px;font-weight:800;display:-webkit-box;overflow:hidden}.gal-detail__stat{color:#c0c0d0;gap:6px;font-size:13px;display:flex}.gal-detail__stat-label{color:#666;text-transform:uppercase;letter-spacing:.06em;align-self:center;min-width:48px;font-size:11px;font-weight:600}.gal-detail__meta{color:#aaa;text-transform:uppercase;letter-spacing:.06em;font-size:13px}.gal-detail__cover-actions{flex-direction:column;gap:10px;width:180px;display:flex}.gal-add-book-btn{box-sizing:border-box;color:#fff;cursor:pointer;white-space:nowrap;background:#8030ff;border:none;border-radius:6px;width:100%;margin-bottom:5px;padding:15px 20px;font-size:15px;font-weight:700;transition:background .15s}.gal-add-book-btn:hover{background:#6e16fc}.gal-books-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.gal-book-card{flex-direction:column;gap:6px;transition:transform .2s;display:flex}.gal-book-card__img-wrap{aspect-ratio:2.2/3;cursor:pointer;border-radius:6px;height:auto;position:relative;overflow:hidden}.gal-book-card__img{object-fit:cover;backface-visibility:hidden;width:100%;height:100%;transition:transform .3s;display:block;transform:translateZ(0)}.gal-book-card__overlay{background:0 0;transition:background .2s,box-shadow .2s;position:absolute;inset:0}.gal-book-card__footer{display:none}.gal-book-card__delete-btn{color:#fff;cursor:pointer;opacity:0;z-index:2;background:#e03030;border:2px solid #ffffff40;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;font-weight:700;transition:opacity .2s,transform .2s,background .15s;display:flex;position:absolute;top:8px;right:8px;transform:translateY(-4px);box-shadow:0 2px 8px #00000080}.gal-book-card__img-wrap:hover .gal-book-card__delete-btn{opacity:1;transform:translateY(0)}.gal-book-card__delete-btn:hover{background:#ff2020}.gal-book-card__title{text-align:center;color:#ccc;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:14px;font-weight:600;line-height:1.4;display:-webkit-box;overflow:hidden}.gal-empty{color:#aaa;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:200px;font-size:15px;display:flex}.gal-modal-backdrop{z-index:100;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gal-modal{background:#17172a;border:1px solid #2e2e48;border-radius:10px;flex-direction:column;width:480px;max-width:90vw;max-height:80vh;display:flex;box-shadow:0 20px 60px #0009}.gal-modal__header{border-bottom:1px solid #2a2a3a;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex}.gal-modal__title{color:#fff;font-size:17px;font-weight:700}.gal-modal__close{color:#666;cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;transition:color .15s}.gal-modal__close:hover{color:#fff}.gal-modal__body{flex-direction:column;gap:8px;padding:18px 20px 20px;display:flex;overflow-y:auto}.gal-modal__search{color:#eee;box-sizing:border-box;background:#1a1a26;border:2px solid #757575;border-radius:6px;outline:none;width:100%;margin-bottom:6px;padding:9px 14px;font-size:14px;transition:border-color .15s}.gal-modal__search:focus{border-color:#8030ff}.gal-modal__book-list{flex-direction:column;gap:6px;max-height:340px;display:flex;overflow-y:auto}.gal-modal__book-row{background:#1a1a26;border:1px solid #2e2e42;border-radius:6px;align-items:center;gap:12px;padding:8px 10px;transition:border-color .15s;display:flex}.gal-modal__book-row:hover{border-color:#8030ff}.gal-modal__book-thumb{object-fit:cover;border-radius:3px;flex-shrink:0;width:36px;height:50px}.gal-modal__book-title{color:#ddd;-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.gal-modal__add-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#8030ff;border:none;border-radius:4px;flex-shrink:0;padding:5px 12px;font-size:12px;font-weight:700;transition:background .15s}.gal-modal__add-btn:hover{background:#6e16fc}.gal-modal__empty{color:#555;text-align:center;padding:20px 0;font-size:13px}.gal-modal__form{flex-direction:column;gap:6px;display:flex}.gal-modal__label{color:#888;text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.gal-modal__input{color:#eee;box-sizing:border-box;background:#1a1a26;border:2px solid #757575;border-radius:6px;outline:none;width:100%;padding:9px 14px;font-size:14px;transition:border-color .15s}.gal-modal__input:focus{border-color:#8030ff}.gal-modal__cover-preview{object-fit:cover;border:1px solid #2e2e42;border-radius:6px;width:100%;height:140px;margin-top:6px}.gal-modal__confirm-btn{color:#fff;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;background:#8030ff;border:none;border-radius:6px;margin-top:8px;padding:10px;font-size:14px;font-weight:700;transition:background .15s}.gal-modal__confirm-btn:hover{background:#6e16fc}.gal-detail__left_row2{flex-direction:row;gap:8px;display:flex}.gal-detail__left_row2 .gal-action-btn{text-align:center;flex:1;padding:7px 8px;font-size:12px}.gal-cover-upload{flex-direction:column;gap:8px;margin-bottom:4px;display:flex}.gal-cover-upload__tabs{gap:6px;display:flex}.gal-cover-upload__tab{color:#666;cursor:pointer;text-align:center;letter-spacing:.03em;background:#1a1a26;border:2px solid #2e2e42;border-radius:6px;flex:1;padding:7px 10px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s,background .15s}.gal-cover-upload__tab:hover{color:#aaa;border-color:#555}.gal-cover-upload__tab--active{color:#c8f;background:#8030ff1a;border-color:#8030ff}.gal-dropzone{cursor:pointer;box-sizing:border-box;background:#1a1a26;border:2px dashed #2e2e48;border-radius:8px;justify-content:center;align-items:center;width:100%;min-height:130px;transition:border-color .2s,background .2s;display:flex;position:relative;overflow:hidden}.gal-dropzone:hover{background:#8030ff0d;border-color:#8030ff}.gal-dropzone--active{background:#8030ff1f;border-style:solid;border-color:#8030ff}.gal-dropzone--has-image{cursor:default;border-style:solid;border-color:#3a3a5a;min-height:150px}.gal-dropzone__inner{pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:6px;padding:20px;display:flex}.gal-dropzone__icon{filter:grayscale(.3);font-size:26px;line-height:1;transition:transform .2s}.gal-dropzone__icon--active{transform:translateY(-4px)scale(1.01)}.gal-dropzone__label{color:#aaa;text-align:center;margin:0;font-size:13px;font-weight:600}.gal-dropzone__sub{color:#aaa;text-transform:uppercase;letter-spacing:.08em;margin:0;font-size:11px}.gal-dropzone__browse-btn{pointer-events:all;color:#c8f;cursor:pointer;letter-spacing:.04em;text-transform:uppercase;background:0 0;border:2px solid #8030ff;border-radius:5px;margin-top:2px;padding:6px 16px;font-size:12px;font-weight:700;transition:background .15s,color .15s}.gal-dropzone__browse-btn:hover{color:#fff;background:#8030ff33}.gal-dropzone__preview{object-fit:contain;width:100%;height:100%;display:block;position:absolute;inset:0}.gal-dropzone__preview-overlay{background:0 0;justify-content:center;align-items:center;gap:10px;transition:background .2s;display:flex;position:absolute;inset:0}.gal-dropzone--has-image:hover .gal-dropzone__preview-overlay{background:#0000008c}.gal-dropzone__change-btn,.gal-dropzone__remove-btn{opacity:0;cursor:pointer;letter-spacing:.04em;text-transform:uppercase;border-radius:5px;padding:6px 14px;font-size:12px;font-weight:700;transition:opacity .2s,transform .2s,background .15s;transform:translateY(4px)}.gal-dropzone--has-image:hover .gal-dropzone__change-btn,.gal-dropzone--has-image:hover .gal-dropzone__remove-btn{opacity:1;transform:translateY(0)}.gal-dropzone__change-btn{color:#fff;background:#8030ff;border:none}.gal-dropzone__change-btn:hover{background:#6e16fc}.gal-dropzone__remove-btn{color:#fff;background:#e03030e6;border:none}.gal-dropzone__remove-btn:hover{background:#c02020}.gal-cover-upload__url-row{align-items:center;gap:8px;display:flex}.gal-cover-upload__url-row .gal-modal__input{flex:1}.gal-cover-upload__url-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#8030ff;border:none;border-radius:6px;flex-shrink:0;padding:9px 14px;font-size:13px;font-weight:700;transition:background .15s}.gal-cover-upload__url-btn:hover{background:#6e16fc}.gal-cover-upload__url-clear{color:#666;cursor:pointer;background:0 0;border:2px solid #444;border-radius:6px;flex-shrink:0;padding:9px 11px;font-size:13px;transition:border-color .15s,color .15s}.gal-cover-upload__url-clear:hover{color:#e03030;border-color:#e03030}@media (max-width:768px){.gal-root{padding:8px 16px}.gal-header{flex-direction:column;align-items:flex-start;gap:12px}.gal-create-btn{text-align:center;width:100%}.gal-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.gal-detail__hero{grid-template-columns:130px 1fr;column-gap:16px}.gal-detail__cover-wrap{flex-shrink:0;width:130px;height:180px}.gal-detail__hero-text{gap:8px}.gal-detail__cover-actions{width:100%}.gal-detail__name{font-size:18px}.gal-detail__meta{color:#aaa;text-transform:uppercase;letter-spacing:.06em;font-size:11px}.gal-detail__stat-label{font-size:10px}.gal-add-book-btn{text-align:center;padding:8px 10px}.gal-detail__left_row2{gap:8px;width:100%}.gal-detail__left_row2 .gal-action-btn{text-align:center;flex:1}.gal-action-btn{color:#aaa;cursor:pointer;text-transform:uppercase;letter-spacing:.04em;background:0 0;border:2px solid #757575;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:600;transition:border-color .15s,color .15s}.gal-detail-nav{flex-direction:column;align-items:flex-start;gap:10px}.gal-books-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.gal-toolbar{flex-direction:column;align-items:stretch}.gal-search-wrap{width:100%;max-width:none}.gal-modal{width:95vw;max-height:90vh}}
