.catalogue-library{color:var(--ink,#263d35);max-width:1500px;margin:auto;padding-bottom:32px}
.catalogue-library .cat-version{font-size:12px;color:var(--muted,#75856e);line-height:1.7;overflow-wrap:anywhere;margin:8px 0}
.cat-heading,.cat-detail-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:4px 0 24px}.cat-eyebrow{display:block;color:var(--green,#527d65);font-size:11px;letter-spacing:2px;font-weight:700;margin-bottom:10px}.cat-heading h2,.cat-detail-head h2,.cat-editor-head h2{font-size:24px;line-height:1.45;margin:0 0 8px;font-weight:650;letter-spacing:-.5px;overflow-wrap:anywhere}.cat-heading p,.cat-detail-head p,.cat-editor-head p{font-size:13px;color:var(--muted,#7a8880);margin:0;line-height:1.7}
.cat-button{border:1px solid var(--line,#e0e7df);background:var(--paper,#fff);border-radius:9px;padding:9px 14px;color:inherit;font:inherit;font-size:13px;cursor:pointer;white-space:nowrap;line-height:1.4}.cat-button:hover{background:var(--line-soft,#f1f5ef)}.cat-button:focus-visible,.cat-cover:focus-visible,.cat-image-preview:focus-visible{outline:3px solid #8cab78;outline-offset:3px}.cat-button:disabled{opacity:.45;cursor:default}.cat-button.cat-primary{background:#456a53;border-color:#456a53;color:#fff}.cat-button.cat-primary:hover{background:#345841}.cat-button.cat-selected{color:#38664a;background:#edf4e9;border-color:#a4b99b}
.cat-filters{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:18px;background:var(--paper,#fff);border:1px solid var(--line,#e2e7dd);border-radius:12px}.cat-filters label,.cat-fields label{display:flex;flex-direction:column;gap:7px;font-size:12px;color:var(--ink-soft,#637466);min-width:120px}.cat-filters label.cat-search{flex:1;min-width:200px}.cat-filters input,.cat-filters select,.cat-fields input,.cat-fields textarea{box-sizing:border-box;border:1px solid var(--line,#dce4d9);border-radius:8px;background:var(--paper,#fff);color:var(--ink,#263d35);padding:10px 12px;font:inherit;font-size:13px;width:100%;min-width:0}.cat-filters select{max-width:210px;min-width:130px}.cat-fields textarea{resize:vertical}.cat-filters input:focus,.cat-filters select:focus,.cat-fields input:focus,.cat-fields textarea:focus{outline:2px solid #a6bd98;outline-offset:1px}
.cat-result{display:flex;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted,#778675);margin:24px 0 15px}.cat-result b{font-size:15px;color:var(--ink,#263d35)}.cat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.cat-card{border:1px solid var(--line,#e1e7dc);background:var(--paper,#fff);border-radius:13px;overflow:hidden;min-width:0}.cat-cover{position:relative;display:block;width:100%;height:210px;border:0;padding:14px;background:#e9ede4;cursor:pointer;overflow:hidden}.cat-cover img{width:100%;height:100%;object-fit:contain;object-position:top;display:block;color:#71816c;font-size:12px}.cat-count{position:absolute;bottom:12px;right:12px;padding:4px 9px;background:rgba(35,55,41,.8);color:white;border-radius:6px;font-size:11px;pointer-events:none}.cat-card-body{padding:17px}.cat-ip{display:inline-block;font-size:11px;color:#527348;background:#eef3e7;border-radius:5px;padding:4px 7px;max-width:100%;overflow-wrap:anywhere}.cat-card h3{margin:9px 0 7px;font-size:15px;font-weight:650}.cat-title-button{border:0;background:none;padding:0;white-space:normal;overflow-wrap:anywhere;text-align:left;font:inherit}.cat-card-body>p{font-size:12px;color:var(--muted,#788471);margin:0;overflow-wrap:anywhere;line-height:1.7}.cat-card-body>p span{color:#bdc7b7;margin:0 4px}.cat-card-foot{border-top:1px solid var(--line,#edf0e8);display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:13px;margin-top:15px;font-size:11px;color:var(--muted,#7d8777)}.cat-card-foot .cat-button{font-size:12px;padding:5px 8px;border:0;color:#416745;background:#f1f5eb}
.cat-empty{text-align:center;padding:64px 20px;background:var(--paper,#fff);border:1px dashed #ccd8c5;border-radius:12px}.cat-empty-icon{font-size:42px;color:#809876}.cat-empty h3{font-size:17px;margin:14px 0 9px}.cat-empty p{font-size:13px;color:var(--muted,#7c8974);margin:0 0 22px;line-height:1.8}.cat-pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin:28px 0;font-size:12px;color:var(--muted,#74816b)}
.cat-breadcrumb{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 24px;font-size:12px;color:var(--muted,#75856e)}.cat-breadcrumb .cat-button{border:0;padding-left:0;background:none;color:#4f7246}.cat-detail-head small{font-size:11px;background:#eee9e1;color:#8d7859;border-radius:5px;padding:4px 8px;margin-left:10px;white-space:nowrap}.cat-detail-head .cat-ip{margin-bottom:10px}.cat-actions{display:flex;gap:8px;flex-wrap:wrap}.cat-notes{white-space:pre-wrap;overflow-wrap:anywhere;border-left:3px solid #a6b896;background:#eff3e9;border-radius:0 8px 8px 0;padding:13px 16px;color:#66775d;font-size:13px;line-height:1.8}.cat-hint{font-size:12px;color:var(--muted,#75856e);margin:20px 0 12px}.cat-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.cat-image-card{background:var(--paper,#fff);border:1px solid var(--line,#e1e7dc);border-radius:12px;overflow:hidden;min-width:0}.cat-image-preview{width:100%;height:300px;padding:15px;position:relative;background:#e9ede4;border:0;cursor:zoom-in;display:block}.cat-image-preview img{width:100%;height:100%;object-fit:contain;object-position:top;display:block}.cat-image-card>div{display:flex;align-items:center;gap:9px;padding:14px 14px 4px;font-size:12px}.cat-image-card>div>b{color:#a0ad92;font-size:14px}.cat-image-card>div>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-image-card>div>.cat-button{font-size:11px;padding:5px 9px}.cat-image-card>p{color:var(--muted,#75856e);font-size:11px;margin:4px 14px 15px}.cat-detail-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:30px;border-top:1px solid var(--line,#dce4d6);padding-top:18px;font-size:12px;color:var(--muted,#75856e)}
.cat-editor-head{margin-bottom:22px}.cat-editor{background:var(--paper,#fff);border:1px solid var(--line,#e1e7dc);border-radius:13px;padding:24px}.cat-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.cat-fields .cat-wide{grid-column:1/-1}.cat-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;border:1.5px dashed #b8c7ac;border-radius:12px;padding:30px 16px;margin-top:24px;background:#f6f8f2;text-align:center;cursor:pointer;line-height:1.7}.cat-drop input{position:absolute;width:100%;height:100%;opacity:0;inset:0;cursor:pointer}.cat-drop:focus-within{outline:3px solid #a6bd98;outline-offset:2px}.cat-drop b{font-size:15px;font-weight:600}.cat-drop span:not(.cat-drop-icon){font-size:12px;color:#6e805f}.cat-drop small{font-size:11px;color:#8c9982}.cat-drop-icon{font-size:28px;color:#789368;line-height:1}.cat-drop.cat-dragging{border-color:#456a53;background:#e8f0e0}.cat-upload-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:20px}.cat-upload-card{border:1px solid var(--line,#e1e7dc);border-radius:10px;padding:10px;min-width:0}.cat-upload-card>img{height:150px;width:100%;object-fit:contain;object-position:top;display:block;background:#edf1e7;border-radius:6px}.cat-file-name{font-size:11px;display:block;margin:9px 0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-upload-actions{display:flex;gap:4px;flex-wrap:wrap}.cat-upload-actions .cat-button{padding:4px 7px;font-size:10px;flex:1}.cat-editor-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line,#e1e7dc);font-size:12px;color:#718366}.cat-editor-footer>div{display:flex;gap:8px}.cat-section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:28px}.cat-section-head h3{font-size:14px;margin:0}.cat-section-head p{font-size:12px;color:#79886f;margin:0}.cat-error{font-size:13px;color:#af4c38;white-space:pre-wrap;overflow-wrap:anywhere}.cat-error:empty,.cat-progress:empty{display:none}.cat-progress{background:#edf4e6;color:#4d7340;border-radius:9px;padding:12px 16px;font-size:13px}
dialog.cat-viewer{box-sizing:border-box;width:min(1100px,96vw);height:94vh;max-height:94vh;max-width:96vw;border:1px solid #cad4c3;border-radius:13px;padding:0;color:#34482e;background:#f8faf4;overflow:hidden;box-shadow:0 30px 100px #17220d60}dialog.cat-viewer::backdrop{background:#15200fe0}.cat-viewer-head,.cat-viewer-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;box-sizing:border-box;background:#f8faf4;height:64px;font-size:13px}.cat-viewer-head>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cat-viewer-scroll{height:calc(100% - 128px);overflow:auto;background:#e7ecdf;padding:18px;box-sizing:border-box}.cat-full-image{display:block;max-width:100%;height:auto;margin:auto;min-height:30px}.cat-viewer-foot{justify-content:center}.cat-viewer-foot .cat-button{font-size:12px}
@media(min-width:1500px){.cat-cover{height:250px}}@media(max-width:1200px){.cat-grid,.cat-upload-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cat-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-filters{gap:10px}.cat-filters label{flex:1}.cat-filters label.cat-search{flex-basis:100%}.cat-filters select{max-width:none}.cat-heading h2{font-size:22px}}@media(max-width:760px){.cat-grid,.cat-upload-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.cat-heading,.cat-detail-head{align-items:flex-start;flex-direction:column;gap:15px}.cat-heading h2,.cat-detail-head h2,.cat-editor-head h2{font-size:20px}.cat-filters{padding:14px}.cat-filters label{min-width:100px}.cat-filters select{min-width:0}.cat-heading p{font-size:12px}.cat-detail-head{margin-bottom:14px}.cat-editor{padding:16px}.cat-editor-footer{align-items:flex-start;flex-direction:column}.cat-fields{gap:14px}.cat-result{font-size:11px}.cat-image-preview{height:240px}.cat-section-head{align-items:flex-start;flex-direction:column}}@media(max-width:460px){.cat-grid,.cat-detail-grid{grid-template-columns:minmax(0,1fr)}.cat-fields{grid-template-columns:minmax(0,1fr)}.cat-cover{height:240px}.cat-card-body{padding:15px}.cat-viewer-head,.cat-viewer-foot{padding:10px;gap:6px}.cat-viewer-foot .cat-button{font-size:11px;padding:7px}.cat-result{flex-direction:column;gap:5px}.cat-upload-actions .cat-button{font-size:10px;padding:4px}.cat-pagination{gap:10px}}
