.odsh-wrap{--odsh-accent:#2563eb;font-family:inherit;margin:0 0 1.5em}
.odsh-wrap *{box-sizing:border-box}
.odsh-search{margin-bottom:14px}
.odsh-search input{width:100%;max-width:360px;padding:10px 14px;border:1px solid #d1d5db;border-radius:8px;font-size:15px;background:#fff}
.odsh-empty,.odsh-notice{padding:18px;background:#f3f4f6;border-radius:8px;color:#4b5563}
.odsh-group{margin:22px 0 8px;font-size:15px;text-transform:uppercase;letter-spacing:.04em;color:#6b7280;grid-column:1/-1}
.odsh-item{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;transition:box-shadow .15s}
.odsh-item:hover{box-shadow:0 4px 16px rgba(0,0,0,.08)}
.odsh-item[hidden]{display:none}
.odsh-layout-list .odsh-items{display:flex;flex-direction:column;gap:10px}
.odsh-layout-grid .odsh-items{display:grid;grid-template-columns:repeat(var(--odsh-cols,3),1fr);gap:16px}
.odsh-layout-grid .odsh-item{flex-direction:column;align-items:flex-start;text-align:left}
.odsh-layout-grid .odsh-info{width:100%}
.odsh-layout-grid .odsh-actions{margin-top:auto}
.odsh-info{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}
.odsh-title{font-weight:600;font-size:16px;color:#111827;text-decoration:none;overflow-wrap:anywhere}
a.odsh-title:hover{color:var(--odsh-accent)}
.odsh-meta{font-size:13px;color:#6b7280}
.odsh-actions{display:flex;flex-wrap:wrap;gap:8px;flex:0 0 auto}
.odsh-btn{display:inline-block;padding:8px 14px;border-radius:6px;font-size:14px;line-height:1.2;text-decoration:none;background:var(--odsh-accent);color:#fff;border:1px solid var(--odsh-accent);transition:background .15s}
.odsh-btn:hover{background:#1d4ed8;color:#fff}
.odsh-btn-dl{background:transparent;color:var(--odsh-accent)}
.odsh-btn-dl:hover{background:var(--odsh-accent);color:#fff}
.odsh-badge{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-width:46px;height:46px;padding:0 6px;border-radius:8px;font-size:12px;font-weight:700;color:#fff;letter-spacing:.02em}
.odsh-c-pdf{background:#dc2626}.odsh-c-ppt{background:#ea580c}.odsh-c-doc{background:#2563eb}.odsh-c-xls{background:#16a34a}
.odsh-c-img{background:#9333ea}.odsh-c-media{background:#0d9488}.odsh-c-other{background:#6b7280}
.odsh-table{width:100%;border-collapse:collapse;background:#fff}
.odsh-table th,.odsh-table td{padding:12px 14px;border-bottom:1px solid #e5e7eb;text-align:left;vertical-align:middle}
.odsh-table th{font-size:13px;text-transform:uppercase;color:#6b7280;letter-spacing:.04em}
.odsh-table .odsh-name{display:flex;align-items:center;gap:12px}
.odsh-table .odsh-badge{min-width:40px;height:34px;font-size:11px}
.odsh-table .odsh-actions{justify-content:flex-end}
.odsh-table tr.odsh-item{border:0;border-radius:0;display:table-row;box-shadow:none}
.odsh-table tr.odsh-item[hidden]{display:none}
.odsh-table tr.odsh-group td{background:#f9fafb;font-weight:600;color:#6b7280;text-transform:uppercase;font-size:13px}

/* modal */
.odsh-modal{position:fixed;inset:0;z-index:999999;background:rgba(15,17,20,.82);display:none;align-items:center;justify-content:center;padding:3vh 3vw}
.odsh-modal.is-open{display:flex}
.odsh-modal-box{position:relative;width:min(1300px,100%);height:100%;background:#1f2328;border-radius:10px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.odsh-modal iframe{width:100%;height:100%;border:0;display:block;background:#3a3d42}
.odsh-modal-close{position:absolute;top:6px;right:8px;z-index:5;width:34px;height:34px;border-radius:50%;border:0;background:rgba(0,0,0,.55);color:#fff;font-size:22px;line-height:1;cursor:pointer}
.odsh-modal-close:hover{background:#dc2626}
body.odsh-noscroll{overflow:hidden}
@media (max-width:640px){
	.odsh-layout-grid .odsh-items{grid-template-columns:1fr}
	.odsh-item{flex-wrap:wrap}
	.odsh-actions{width:100%}
	.odsh-modal{padding:0}
	.odsh-modal-box{border-radius:0}
}
@media (min-width:641px) and (max-width:1024px){
	.odsh-layout-grid .odsh-items{grid-template-columns:repeat(min(var(--odsh-cols,3),2),1fr)}
}

/* download progress panel */
.odsh-dlp{position:fixed;right:16px;bottom:16px;z-index:9999999;display:flex;flex-direction:column;gap:10px;width:min(340px,calc(100vw - 32px));font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}
.odsh-dlc{background:#1f2328;color:#fff;border-radius:10px;padding:12px 14px;box-shadow:0 8px 28px rgba(0,0,0,.35);font-size:13px;line-height:1.4}
.odsh-dlc-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.odsh-dlc-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.odsh-dlc-x{background:transparent;border:0;color:#9ca3af;font-size:20px;line-height:1;cursor:pointer;padding:0 2px}
.odsh-dlc-x:hover{color:#fff}
.odsh-dlc-bar{height:6px;border-radius:3px;background:#3a4048;overflow:hidden;margin-bottom:8px;position:relative}
.odsh-dlc-fill{display:block;height:100%;width:0;background:#3b82f6;border-radius:3px;transition:width .2s linear}
.odsh-dlc-bar.is-indeterminate .odsh-dlc-fill{width:35%!important;position:absolute;animation:odshind 1.1s ease-in-out infinite}
@keyframes odshind{0%{left:-35%}100%{left:100%}}
.odsh-dlc-l1{font-weight:600}
.odsh-dlc-l2{color:#b6bcc6;margin-top:1px}
.odsh-dlc.is-done .odsh-dlc-fill{background:#22c55e}
.odsh-dlc.is-error .odsh-dlc-fill{background:#ef4444}
.odsh-dlc-retry{display:inline-block;margin-top:8px;color:#93c5fd;text-decoration:underline;font-size:12px}
