/* ── Resource Detail Page ── */
  .rd-back{display:inline-flex;align-items:center;gap:6px;padding:4px 0;color:var(--md-on-surface-variant);font-size:.875rem;font-weight:500;text-decoration:none;transition:color .15s;margin-bottom:16px}
  .rd-back:hover{color:var(--md-primary)}

  /* Hero card */
  .rd-hero{background:var(--md-surface-container-lowest);border:1px solid var(--md-outline-variant);border-radius:8px;padding:24px;margin-bottom:24px;position:relative;overflow:hidden}
  .rd-hero-art{position:absolute;top:0;right:0;width:220px;height:100%;opacity:.06;pointer-events:none}
  .rd-hero-art svg{width:100%;height:100%}
  .rd-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
  .rd-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--md-radius-full);font-size:.75rem;font-weight:600}
  .rd-chip-subject{background:color-mix(in srgb, var(--subject-color, var(--md-primary)) 5%, transparent);color:var(--subject-color, var(--md-primary));border:1px solid color-mix(in srgb, var(--subject-color, var(--md-primary)) 18%, transparent)}
  .rd-chip-type{background:color-mix(in srgb, var(--md-primary) 5%, transparent);color:var(--md-primary);border:1px solid color-mix(in srgb, var(--md-primary) 18%, transparent)}
  .rd-chip-grade{background:color-mix(in srgb, var(--md-outline) 5%, transparent);color:var(--md-on-surface-variant);border:1px solid color-mix(in srgb, var(--md-outline) 18%, transparent)}
  .rd-title{font-size:1.5rem;font-weight:700;color:var(--md-on-surface);margin:0 0 8px;line-height:1.35;position:relative}
  
  /* Meta Bar */
  .rd-meta-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:.8125rem;color:var(--md-on-surface-variant);margin-bottom:16px}
  .rd-meta-item{display:inline-flex;align-items:center;gap:4px;color:var(--md-on-surface-variant);font-weight:500}
  .rd-meta-item .material-symbols-outlined{font-size:16px;color:var(--md-on-surface-variant)}
  .rd-meta-bar .dot-sep{opacity:.3}
  .rd-meta-admin{color:var(--md-primary);font-weight:600}
  .rd-meta-admin .material-symbols-outlined{color:var(--md-primary);font-variation-settings:'FILL' 1}
  .rd-meta-user{color:#0d652d;font-weight:600;display:inline-flex;align-items:center;gap:4px}
  [data-theme="dark"] .rd-meta-user{color:#4ade80}
  .rd-meta-user .material-symbols-outlined{color:#0d652d}
  [data-theme="dark"] .rd-meta-user .material-symbols-outlined{color:#4ade80}
  .rd-meta-external{color:#e37400;font-weight:600;display:inline-flex;align-items:center;gap:4px}
  [data-theme="dark"] .rd-meta-external{color:#fbbf24}
  .rd-meta-external .material-symbols-outlined{color:#e37400}
  [data-theme="dark"] .rd-meta-external .material-symbols-outlined{color:#fbbf24}
  .rd-uploader-avatar{width:18px;height:18px;border-radius:50%;overflow:hidden;background:var(--md-primary);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
  .rd-uploader-avatar img{width:100%;height:100%;object-fit:cover}
  .rd-uploader-avatar-letter{font-size:.5rem;font-weight:700;color:var(--md-on-primary)}
  .rd-uploader-link{color:var(--md-primary);font-weight:600;text-decoration:none}
  .rd-uploader-link:hover{text-decoration:underline}
  .rd-description{font-size:.9375rem;color:var(--md-on-surface-variant);line-height:1.65;margin-bottom:0;position:relative}

  /* Action bar */
  .rd-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:16px;border-top:1px solid var(--md-outline-variant);margin-top:16px}
  .rd-action-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:var(--md-radius-full);font-family:inherit;font-size:.8125rem;font-weight:600;cursor:pointer;transition:all .15s;text-decoration:none}
  .rd-action-btn .material-symbols-outlined{font-size:18px}
  .rd-btn-view{background:var(--md-primary);color:var(--md-on-primary)}
  .rd-btn-view:hover{opacity:.9;text-decoration:none;color:var(--md-on-primary)}
  .rd-btn-download{background:var(--md-secondary-container);color:var(--md-on-secondary-container)}
  .rd-btn-download:hover{opacity:.85;text-decoration:none;color:var(--md-on-secondary-container)}
  .rd-btn-like{background:transparent;color:var(--md-on-surface-variant);border:1px solid var(--md-outline-variant)}
  .rd-btn-like:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
  .rd-btn-like.liked{color:var(--md-primary);border-color:var(--md-primary);background:color-mix(8%, var(--md-primary), transparent)}
  .rd-btn-bookmark{background:transparent;color:var(--md-on-surface-variant);border:1px solid var(--md-outline-variant)}
  .rd-btn-bookmark:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
  .rd-btn-bookmark.bookmarked{color:var(--md-primary);border-color:var(--md-primary)}
  .rd-btn-share{background:transparent;color:var(--md-on-surface-variant);border:1px solid var(--md-outline-variant)}
  .rd-btn-share:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
  .rd-action-spacer{flex:1}

  /* Media preview */
  .rd-preview{background:var(--md-surface-container-lowest);border:1px solid var(--md-outline-variant);border-radius:8px;overflow:hidden;margin-bottom:24px}
  .rd-preview-image{width:100%;max-height:500px;object-fit:contain;display:block;background:var(--md-surface-container-high)}
  .rd-preview-video{width:100%;max-height:500px;display:block;background:#000}
  .rd-preview-audio{width:100%;padding:24px;display:block}
  .rd-preview-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;text-align:center;color:var(--md-on-surface-variant)}
  .rd-preview-placeholder .material-symbols-outlined{font-size:56px;opacity:.3;margin-bottom:12px}
  .rd-preview-placeholder p{font-size:.875rem;max-width:300px;margin:0}

  /* Comments section */
  .rd-section-title{font-size:1.125rem;font-weight:700;color:var(--md-on-surface);margin-bottom:16px;display:flex;align-items:center;gap:8px}
  .rd-section-title .count{font-size:.875rem;font-weight:500;color:var(--md-on-surface-variant)}

  /* Comment compose */
  .rd-compose{background:var(--md-surface-container-lowest);border:1px solid var(--md-outline-variant);border-radius:8px;padding:16px;margin-bottom:24px}
  .rd-compose-header{font-size:.9375rem;font-weight:600;color:var(--md-on-surface);margin-bottom:12px}
  .rd-compose textarea{width:100%;padding:12px;border:1px solid var(--md-outline-variant);border-radius:8px;font-family:inherit;font-size:.875rem;background:var(--md-surface-container-lowest);color:var(--md-on-surface);outline:none;resize:vertical;min-height:80px;transition:border-color .15s}
  .rd-compose textarea:focus{border-color:var(--md-primary)}
  .rd-compose textarea::placeholder{color:var(--md-on-surface-variant)}
  .rd-compose-actions{display:flex;justify-content:flex-end;margin-top:10px}
  .rd-login-prompt{text-align:center;padding:32px;border:1px solid var(--md-outline-variant);border-radius:12px;margin-bottom:24px}
  .rd-login-prompt p{color:var(--md-on-surface-variant);margin-bottom:12px}

  /* Comment cards */
  .rd-comment{background:var(--md-surface-container-lowest,#fff);border:1px solid var(--md-outline-variant);border-radius:8px;padding:16px;margin-bottom:10px;transition:border-color .15s}
  .rd-comment:hover{border-color:var(--md-outline)}
  .rd-comment-header{display:flex;align-items:center;gap:10px;margin-bottom:8px}
  .rd-comment-avatar{width:32px;height:32px;border-radius:50%;overflow:hidden;background:var(--md-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}
  .rd-comment-avatar img{width:100%;height:100%;object-fit:cover}
  .rd-comment-avatar-letter{font-size:.75rem;font-weight:700;color:var(--md-on-primary)}
  .rd-comment-meta{flex:1;min-width:0}
  .rd-comment-author{font-weight:600;font-size:.8125rem;color:var(--md-on-surface);text-decoration:none}
  .rd-comment-author:hover{color:var(--md-primary)}
  .rd-comment-time{font-size:.6875rem;color:var(--md-on-surface-variant)}
  .rd-comment-body{font-size:.875rem;color:var(--md-on-surface);line-height:1.55;margin-bottom:8px}
  .rd-comment-actions{display:flex;align-items:center;gap:2px}
  .rd-comment-action{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border:none;background:transparent;color:var(--md-on-surface-variant);cursor:pointer;border-radius:6px;font-size:.75rem;font-family:inherit;transition:background .1s}
  .rd-comment-action:hover{background:var(--md-surface-container-high);color:var(--md-primary)}
  .rd-comment-action.liked{color:var(--md-primary)}
  .rd-comment-action .material-symbols-outlined{font-size:16px}
  .rd-comment-action-spacer{flex:1}
  .rd-comment-delete{color:var(--md-error)}
  .rd-comment-delete:hover{background:var(--md-error-container);color:var(--md-error)}

  /* Nested replies */
  .rd-nested{margin-left:20px;padding-left:16px;border-left:2px solid var(--md-outline-variant)}
  .rd-nested .rd-nested{border-left-color:color-mix(in srgb, var(--md-outline-variant) 60%, transparent)}

  .rd-empty-comments{text-align:center;padding:48px 24px;color:var(--md-on-surface-variant)}
  .rd-empty-comments .material-symbols-outlined{font-size:48px;opacity:.4;margin-bottom:8px}

  /* Related resources */
  .rd-related{margin-top:32px}
  .rd-related-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}

  /* Bundle / Multiple Files Selector */
  .rd-bundle-panel {
    background: var(--md-surface-container-lowest);
    border: 1px solid var(--md-outline-variant);
    border-radius: 12px;
    padding: 16px;
    margin-bottom: 24px;
  }
  .rd-bundle-header {
    font-weight: 600;
    font-size: 0.9375rem;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--md-on-surface);
  }
  .rd-bundle-header .material-symbols-outlined {
    color: var(--md-primary);
  }
  .rd-bundle-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 10px;
  }
  .rd-bundle-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--md-outline-variant);
    border-radius: 8px;
    text-decoration: none;
    color: var(--md-on-surface-variant);
    background: var(--md-surface-container-low);
    transition: all 0.2s ease;
  }
  .rd-bundle-item:hover {
    background: var(--md-surface-container-high);
    border-color: var(--md-outline);
    transform: translateY(-1px);
    text-decoration: none;
  }
  .rd-bundle-item.active {
    border-color: var(--md-primary);
    background: color-mix(in srgb, var(--md-primary) 8%, var(--md-surface-container-low));
    color: var(--md-on-surface);
  }
  .rd-bundle-item-icon {
    font-size: 24px;
    color: var(--md-on-surface-variant);
  }
  .rd-bundle-item.active .rd-bundle-item-icon {
    color: var(--md-primary);
  }
  .rd-bundle-item-title {
    font-weight: 600;
    font-size: 0.875rem;
    color: var(--md-on-surface);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
  }
  .rd-bundle-item.active .rd-bundle-item-title {
    color: var(--md-primary);
  }
  .rd-bundle-item-meta {
    font-size: 0.75rem;
    color: var(--md-on-surface-variant);
    margin-top: 2px;
  }

  /* Responsive */
  @media(max-width:768px){
    .rd-hero{padding:16px;border-radius:8px}
    .rd-title{font-size:1.25rem}
    .rd-actions{gap:6px}
    .rd-action-btn{padding:7px 12px;font-size:.75rem}
    .rd-btn-label{display:none}
    .rd-btn-view,.rd-btn-download{padding:7px 10px}
    .rd-related-grid{grid-template-columns:1fr 1fr}
  }
  @media(max-width:480px){
    .rd-related-grid{grid-template-columns:1fr}
  }

  /* Unified Files Section */
  .rd-files-section {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--md-outline-variant);
  }
  .rd-files-title {
    font-size: 0.9375rem;
    font-weight: 600;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--md-on-surface);
  }
  .rd-files-title .material-symbols-outlined {
    color: var(--md-primary);
    font-size: 20px;
  }
  .rd-files-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }
  .rd-file-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px;
    border: none;
    border-radius: 12px;
    background: var(--md-surface-container-low);
    color: var(--md-on-surface-variant);
  }
  .rd-file-card:hover {
    background: var(--md-surface-container-high);
    text-decoration: none;
  }
  .rd-file-info {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1;
    min-width: 0;
  }
  .rd-file-icon {
    font-size: 28px;
    color: var(--md-on-surface-variant);
    background: var(--md-surface-container-highest);
    padding: 8px;
    border-radius: 8px;
    flex-shrink: 0;
  }
  .rd-file-details {
    flex: 1;
    min-width: 0;
  }
  .rd-file-name {
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--md-on-surface);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .rd-file-meta {
    font-size: 0.8125rem;
    color: var(--md-on-surface-variant);
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
  }
  .rd-file-badge {
    background: var(--md-surface-container-highest);
    color: var(--md-on-surface-variant);
    padding: 1px 6px;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
  }
  .rd-file-actions {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: 16px;
    flex-shrink: 0;
  }
  .rd-file-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    font-family: inherit;
    font-size: 0.8125rem;
    font-weight: 600;
    border: none;
    border-radius: var(--md-radius-full);
    cursor: pointer;
    text-decoration: none;
  }
  .rd-file-btn .material-symbols-outlined {
    font-size: 16px;
  }
  .rd-file-btn.btn-read {
    background: var(--md-primary);
    color: var(--md-on-primary);
  }
  .rd-file-btn.btn-read:hover {
    opacity: 0.9;
    text-decoration: none;
    color: var(--md-on-primary);
  }
  .rd-file-btn.btn-download {
    background: var(--md-secondary-container);
    color: var(--md-on-secondary-container);
  }
  .rd-file-btn.btn-download:hover {
    opacity: 0.85;
    text-decoration: none;
    color: var(--md-on-secondary-container);
  }

  @media(max-width: 600px) {
    .rd-file-card {
      flex-direction: column;
      align-items: stretch;
      gap: 14px;
    }
    .rd-file-actions {
      margin-left: 0;
      justify-content: flex-end;
    }
    .rd-file-btn {
      flex: 1;
      justify-content: center;
    }
  }

