/* Ouroboros Data frontend. Theme inheritance is the baseline. */
.ouro-calc,.ouro-data-table{box-sizing:border-box;margin:20px 0;color:inherit;font:inherit}
.ouro-calc{border:1px solid rgba(127,127,127,.28);border-radius:12px;padding:18px;background:transparent}
.ouro-calc-title h2{margin:0 0 4px;color:inherit;font-family:inherit}.ouro-calc-title p{margin:0 0 16px;opacity:.78}
.ouro-calc-controls{display:grid;grid-template-columns:1.6fr 2fr 110px auto;gap:10px;align-items:end}.ouro-calc label{display:grid;gap:5px;font-weight:600}
.ouro-calc input,.ouro-calc select,.ouro-calc textarea,.ouro-search{width:100%;box-sizing:border-box;border:1px solid rgba(127,127,127,.4);border-radius:6px;padding:9px 10px;background:transparent;color:inherit;font:inherit}
.ouro-craft-add,.ouro-add-craft,.ouro-copy,.ouro-chips button{border:1px solid currentColor;border-radius:6px;padding:9px 12px;background:transparent;color:inherit;cursor:pointer;font:inherit}.ouro-craft-add,.ouro-copy,.ouro-add-craft{font-weight:700}
.ouro-queue{margin:16px 0;border-top:1px solid rgba(127,127,127,.22);border-bottom:1px solid rgba(127,127,127,.22)}.ouro-queue-row{display:grid;grid-template-columns:1fr 100px auto;gap:10px;align-items:center;padding:10px 0}.ouro-queue-row+.ouro-queue-row{border-top:1px solid rgba(127,127,127,.16)}.ouro-queue-row input{padding:6px}.ouro-remove{border:0;background:none;color:inherit;cursor:pointer;text-decoration:underline}
.ouro-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:16px 0}.ouro-summary>div{border:1px solid rgba(127,127,127,.22);border-radius:8px;padding:12px}.ouro-summary span{display:block;font-size:.86em;opacity:.7;margin-bottom:3px}.ouro-summary strong{font-size:1.05em}.ouro-component-inputs{display:grid;gap:10px}.ouro-component-box{padding:12px;border:1px dashed rgba(127,127,127,.35);border-radius:8px}.ouro-component-box textarea{margin-top:6px;min-height:72px}.ouro-log-box textarea{min-height:90px;resize:vertical}.ouro-log-box{display:grid;gap:10px}.ouro-copy-state{font-size:.9em}

.ouro-data-table{border:1px solid rgba(127,127,127,.22);padding:14px;background:transparent}
.ouro-browse-bar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:12px}.ouro-search{max-width:360px}.ouro-chips{display:flex;gap:6px;flex-wrap:wrap}.ouro-chips button{padding:6px 10px;border-color:rgba(127,127,127,.35)}.ouro-chips button.active{box-shadow:inset 0 0 0 2px currentColor;font-weight:700}
.ouro-table-scroll{overflow:auto}.ouro-data-table table{width:100%;border-collapse:collapse;background:transparent;color:inherit;font:inherit}.ouro-data-table th,.ouro-data-table td{padding:10px;border-bottom:1px solid rgba(127,127,127,.22);text-align:left;vertical-align:middle;background:transparent;color:inherit}.ouro-data-table th{white-space:nowrap;font:inherit;font-weight:700}
.ouro-image-open{border:0;background:none;padding:0;cursor:pointer;color:inherit}.ouro-image-open img{width:48px;height:48px;object-fit:cover;border-radius:5px;display:block}.ouro-item-name{display:grid;gap:2px}.ouro-item-name small{font-size:.88em;opacity:.7;font-weight:400;max-width:42ch;white-space:normal}.ouro-inline-badges{display:flex;gap:4px;flex-wrap:wrap;margin-top:2px}.ouro-inline-badges em,.ouro-sale-badge,.ouro-tool-tag{font-style:normal;font-size:.72em;border:1px solid currentColor;border-radius:999px;padding:2px 6px;line-height:1.3}.ouro-tool-tag{font-size:.84em}.ouro-old{text-decoration:line-through;opacity:.6}.ouro-sale-badge{margin-left:4px}.ouro-event-banner{border:1px solid rgba(127,127,127,.3);padding:10px 12px;margin:14px 0;font-weight:500}

/* Optional visual treatments. These add structure without overriding parent-theme typography. */
.ouro-data-table.ouro-opt-rounded,.ouro-opt-rounded .ouro-event-banner{border-radius:12px}.ouro-opt-alternating tbody tr:nth-child(even){background:rgba(127,127,127,.055)}.ouro-opt-hover tbody tr{transition:background-color .12s ease}.ouro-opt-hover tbody tr:hover{background:rgba(127,127,127,.09)}.ouro-opt-strong_header thead{background:rgba(127,127,127,.14)}.ouro-opt-strong_header thead th{border-bottom-width:2px}.ouro-opt-shadow{box-shadow:0 4px 18px rgba(0,0,0,.08)}.ouro-opt-compact th,.ouro-opt-compact td{padding-top:6px;padding-bottom:6px}.ouro-data-table:not(.ouro-opt-thumbnails) .ouro-image-open,.ouro-data-table:not(.ouro-opt-thumbnails) .ouro-no-image{display:none}.ouro-add-craft.is-styled{padding:.55em .9em;font-weight:700}.ouro-opt-styled_add .ouro-add-craft.is-styled:hover{opacity:.82}

.ouro-lightbox[hidden]{display:none}.ouro-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.72);z-index:999999;display:grid;place-items:center;padding:20px}.ouro-lightbox-card{position:relative;width:min(860px,94vw);max-height:90vh;overflow:auto;background:Canvas;color:CanvasText;border-radius:14px;padding:18px;display:grid;grid-template-columns:minmax(260px,1fr) 1fr;gap:20px}.ouro-lightbox-img{width:100%;max-height:68vh;object-fit:contain;border-radius:8px}.ouro-lightbox-close{position:absolute;right:10px;top:6px;border:1px solid rgba(127,127,127,.3);background:Canvas;color:CanvasText;font-size:28px;border-radius:99px;width:38px;height:38px;cursor:pointer}.ouro-lightbox-copy h3{margin-top:6px;color:inherit;font-family:inherit}.ouro-lightbox-details{display:grid;grid-template-columns:max-content 1fr;gap:6px 12px}.ouro-lightbox-details dt{font-weight:700}.ouro-lightbox-details dd{margin:0}.ouro-empty{opacity:.65;padding:10px 0}.ouro-no-image{opacity:.45}

@media(max-width:760px){
 .ouro-calc-controls{grid-template-columns:1fr 1fr}.ouro-craft-add{grid-column:1/-1}.ouro-summary{grid-template-columns:1fr 1fr}.ouro-browse-bar{align-items:stretch;flex-direction:column}.ouro-search{max-width:none}.ouro-lightbox-card{grid-template-columns:1fr}.ouro-queue-row{grid-template-columns:1fr 80px auto}
 .ouro-data-table.ouro-opt-mobile_cards table thead{display:none}.ouro-data-table.ouro-opt-mobile_cards table,.ouro-data-table.ouro-opt-mobile_cards tbody,.ouro-data-table.ouro-opt-mobile_cards tr,.ouro-data-table.ouro-opt-mobile_cards td{display:block;width:100%;box-sizing:border-box}.ouro-data-table.ouro-opt-mobile_cards tr{border:1px solid rgba(127,127,127,.22);margin:10px 0;padding:8px}.ouro-data-table.ouro-opt-mobile_cards.ouro-opt-rounded tr{border-radius:10px}.ouro-data-table.ouro-opt-mobile_cards td{border:0;padding:6px}
}

/* Generic schema-driven views */
.ouro-generic-view{display:grid;grid-template-columns:repeat(var(--ouro-cards,4),minmax(0,1fr));gap:1rem;margin:1rem 0}
.ouro-record-card{border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 18%,transparent);border-radius:.65rem;padding:1rem;background:transparent;min-width:0}
.ouro-record-card h3{margin:.1rem 0 .65rem;font:inherit;font-weight:700;font-size:1.15em}
.ouro-card-image img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:.45rem;margin-bottom:.75rem}
.ouro-card-meta,.ouro-card-blurb{margin:.35rem 0}.ouro-card-blurb{opacity:.88}
.ouro-view-profile_cards .ouro-record-card{display:grid;grid-template-columns:88px 1fr;column-gap:1rem;align-items:start}
.ouro-view-profile_cards .ouro-card-image{grid-row:1 / span 8}.ouro-view-profile_cards .ouro-card-image img{width:88px;height:88px}
.ouro-view-compact{display:block}.ouro-view-compact .ouro-record-card{border-width:0 0 1px;border-radius:0;padding:.65rem 0}
.ouro-accordion{border:1px solid color-mix(in srgb,currentColor 18%,transparent);margin:.5rem 0}.ouro-accordion summary{cursor:pointer;padding:.85rem 1rem;font-weight:600}.ouro-accordion>div{padding:0 1rem 1rem}
.ouro-alpha{display:flex;flex-wrap:wrap;gap:.35rem;margin:.75rem 0}.ouro-alpha button{font:inherit;background:transparent;color:inherit;border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:.35rem;padding:.35rem .55rem;cursor:pointer}.ouro-alpha button.is-active{font-weight:700;text-decoration:underline}
@media(max-width:900px){.ouro-generic-view{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.ouro-generic-view{grid-template-columns:1fr}.ouro-view-profile_cards .ouro-record-card{grid-template-columns:72px 1fr}.ouro-view-profile_cards .ouro-card-image img{width:72px;height:72px}}
