.drive-panel { margin: 0 0 24px; }
.drive-panel .panel-head { flex-wrap: wrap; gap: 12px; }
.drive-panel .panel-body > .detail-copy:first-child { margin-top: 0; }
.drive-root { display: grid; gap: 6px; margin: 18px 0; overflow-wrap: anywhere; }
.drive-root a { color: #305e96; text-decoration: underline; text-underline-offset: 3px; }
.drive-counts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; margin: 20px 0; }
.drive-counts > div { padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); color: var(--ink); }
.drive-counts dt { color: var(--muted); font-size: .83rem; }
.drive-counts dd { margin: 6px 0 0; font-size: 1.45rem; font-weight: 700; }
.drive-structure, .drive-folders { margin: 18px 0; border: 1px solid #e9e7e2; border-radius: 12px; padding: 0 14px; }
.drive-structure summary, .drive-folders summary { min-height: 44px; padding: 12px 0; cursor: pointer; font-weight: 600; }
.drive-structure ul { margin: 8px 0 14px; padding-left: 20px; list-style: none; }
.drive-structure ul ul { border-left: 1px solid #d9d6cf; margin-left: 3px; padding-left: 16px; }
.drive-structure li { padding: 3px 0; overflow-wrap: anywhere; }
.drive-folders > ul { padding: 0; list-style: none; }
.drive-folders li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid #f0efec; }
.drive-folders li > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.drive-folder-reason { display: block; margin-top: 4px; color: #78715f; font-size: .8rem; line-height: 1.5; }
.drive-actions { margin-top: 18px; }
.drive-actions .button { min-height: 44px; }
.drive-enable { min-height: 44px; margin: 12px 0; gap: 10px; }
.drive-enable input { width: 22px; height: 22px; }
.drive-credentials { min-width: 0; margin: 20px 0 0; padding: 16px; border: 1px solid #e2dfd9; border-radius: 12px; }
.drive-credentials legend { padding: 0 6px; font-weight: 600; }
.drive-credentials .field + .field { margin-top: 14px; }
.drive-panel a:focus-visible, .drive-panel summary:focus-visible { outline: 3px solid #9e7600; outline-offset: 4px; border-radius: 4px; }
.drive-upload-queue { border-top: 1px solid #e2dfd9; margin-top: 24px; }
.drive-upload-tools { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 12px; margin: 18px 0; }
.drive-upload-tools label { display: grid; gap: 6px; flex: 1 1 220px; min-width: 0; }
.drive-upload-tools select, .drive-upload-tools button, .drive-upload-pages button { min-height: 44px; }
.drive-upload-tools select { width: 100%; min-height: 46px; border: 1px solid var(--line,#e5e3dd); border-radius: 8px; padding: 10px 12px; background: var(--paper,#fff); color: var(--ink,#1e1e1e); font: inherit; }
.drive-upload-pages { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 14px 0; }
.drive-upload-list { list-style: none; padding: 0; margin: 0; }
.drive-upload-row { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); gap: 18px; border-top: 1px solid #e9e7e2; padding: 16px 0; }
.drive-upload-file, .drive-upload-state { min-width: 0; overflow-wrap: anywhere; }
.drive-upload-file small, .drive-upload-state small { display: block; color: #78715f; line-height: 1.6; margin-top: 5px; }
.drive-upload-state p { margin: 8px 0; font-size: .88rem; line-height: 1.5; }
.drive-upload-name { display: block; padding: 0; background: none; border: 0; color: #305e96; font: inherit; font-weight: 650; text-align: left; text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; cursor: pointer; min-height: 44px; }
.drive-upload-queue :focus-visible { outline: 3px solid #9e7600; outline-offset: 3px; }
@media (max-width: 560px) { .drive-upload-row { grid-template-columns: minmax(0,1fr); gap: 10px; } .drive-upload-tools { align-items: stretch; } .drive-upload-tools button { flex: 1 1 100%; } }
@media (max-width: 560px) {
  .drive-counts { gap: 7px; }
  .drive-counts > div { padding: 12px 9px; }
  .drive-counts dt { font-size: .74rem; }
  .drive-counts dd { font-size: 1.25rem; }
  .drive-actions { display: grid; }
  .drive-actions .button { width: 100%; }
  .drive-credentials { padding: 12px; }
}

.drive-summary-counts { grid-template-columns: repeat(3,minmax(0,1fr)); }
.drive-progress-counts { grid-template-columns: repeat(2,minmax(0,1fr)); margin-top: 0; }
.drive-summary-counts small, .drive-progress-counts small { display: block; font-size: .75rem; line-height: 1.5; overflow-wrap: anywhere; }
.drive-progress-meter, .drive-progress-track { display: block; width: 100%; height: 8px; margin: 10px 0; border: 0; border-radius: 8px; overflow: hidden; background: var(--line); }
.drive-progress-meter { appearance: none; accent-color: #547b6b; }
.drive-progress-meter::-webkit-progress-bar { background: var(--line); border-radius: 8px; }
.drive-progress-meter::-webkit-progress-value { background: #547b6b; border-radius: 8px; }
.drive-progress-meter::-moz-progress-bar { background: #547b6b; border-radius: 8px; }
.drive-usage-state { margin: 6px 0; font-size: .83rem; font-weight: 600; }
.drive-limits dd { overflow-wrap: anywhere; font-size: 1.1rem; }
@media (max-width: 560px) { .drive-progress-counts { grid-template-columns: minmax(0,1fr); } }
@media (max-width: 560px) { .drive-limits .drive-counts { grid-template-columns: repeat(2,minmax(0,1fr)); } }
