[v-cloak] { display: none; }
.udc-app-container { font-family: "Noto Sans JP", sans-serif; max-width: 1000px; margin: 2rem auto; color: #333; line-height: 1.5; }

.udc-filter-section { background: #f8f9fb; padding: 20px; border-radius: 12px; margin-bottom: 25px; border: 1px solid #eee; }
.udc-search-input input { width: 100%; padding: 10px; border: 2px solid #ddd; border-radius: 8px; font-size: 16px; margin-bottom: 15px; box-sizing: border-box; }
.udc-filter-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.udc-label-text { font-size: 11px; font-weight: bold; color: #777; margin-bottom: 4px; }
.udc-field select { width: 100%; padding: 8px; border: 1px solid #ddd; border-radius: 6px; background: #fff; cursor: pointer; }

.udc-title-category { font-size: 25px; font-weight: bold; border-left: 5px solid #e4007f; padding-left: 12px; margin: 35px 0 15px; }
.udc-maker-label { font-size: 20px; font-weight: bold; color: #666; margin: 15px 0 12px 5px; }

.udc-no-result { text-align: center; padding: 40px 20px; color: #666; background: #fdfdfd; border-radius: 8px; border: 1px dashed #ccc; margin-top: 20px; font-weight: bold; }
.udc-highlight { background-color: #ffeb3b; color: #333; font-weight: bold; padding: 0 2px; border-radius: 2px; }

.udc-device-list-vertical { display: flex; flex-direction: column; gap: 8px; }

.udc-device-item { background: #fff; border: 1px solid #eee; border-radius: 8px; overflow: hidden; width: 100%; }
.udc-device-header { display: flex; justify-content: space-between; align-items: center; padding: 12px 15px; cursor: pointer; transition: 0.2s; }
.udc-device-header:hover { background: #fafafa; }

.udc-info-side { flex: 1; }
.udc-device-name-text { font-size: 15px; font-weight: bold; }
.udc-au-text { font-size: 11px; color: #f08300; font-weight: bold; margin-top: 4px; }

.udc-status-side { display: flex; align-items: center; gap: 10px; }
.udc-status-badge { font-size: 10px; background: #e4007f; color: #fff; padding: 2px 8px; border-radius: 4px; font-weight: bold; }
.udc-arrow::after { content: '▼'; font-size: 10px; color: #ccc; transition: 0.3s; display: inline-block; }
.udc-arrow.is-open { transform: rotate(180deg); }

.udc-device-detail { padding: 15px; background: #fdfdfd; border-top: 1px solid #f5f5f5; }
.udc-spec-grid-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; }

.udc-spec-item { display: flex; align-items: center; border-bottom: 1px dashed #eee; padding-bottom: 8px; }
.udc-spec-item:nth-last-child(-n+2) { border-bottom: none; padding-bottom: 0; }

.udc-spec-title { width: 85px; font-size: 11px; color: #888; font-weight: bold; flex-shrink: 0; margin: 0; }
.udc-spec-desc { flex: 1; font-size: 13px; font-weight: bold; color: #333; margin: 0; line-height: 1.4; }

.udc-cta-area { display: flex; gap: 10px; margin-top: 20px; padding-top: 15px; border-top: 1px dashed #eee; justify-content: center; }
.udc-btn { flex: 1; max-width: 250px; text-align: center; padding: 12px 10px; border-radius: 8px; font-weight: bold; color: #fff; text-decoration: none; font-size: 13px; transition: 0.2s; box-sizing: border-box; display: block; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
.udc-btn:hover { opacity: 0.8; transform: translateY(-1px); }

/* 管理画面からの色指定を動的に反映 */
.udc-btn-sim { background-color: var(--udc-sim-color, #e4007f); }
.udc-btn-esim { background-color: var(--udc-esim-color, #005bac); }

@media (max-width: 767px) {
    .udc-filter-grid { grid-template-columns: 1fr; }
    .udc-device-name-text { font-size: 14px; }
    .udc-spec-grid-layout { grid-template-columns: 1fr; gap: 10px; }
    .udc-spec-item:nth-last-child(2) { border-bottom: 1px dashed #eee; padding-bottom: 8px; }
    .udc-spec-item:last-child { border-bottom: none; padding-bottom: 0; }
    .udc-cta-area { flex-direction: column; align-items: center; }
    .udc-btn { max-width: 100%; width: 100%; }
}