/* doh_manager */
.doh-tool { --doh-bg:var(--bg,#f1f4f9); --doh-card:var(--panel,#fff); --doh-border:var(--line,#e9edf4); --doh-text:var(--text,#1e293b); --doh-muted:var(--text-muted,#64748b); --doh-primary:var(--brand,#2563eb); --doh-primary-soft: rgba(37, 99, 235, 0.06); --doh-success: #16a34a; --doh-success-soft: rgba(22, 163, 74, 0.06); --doh-danger: #dc2626; --doh-danger-soft: rgba(220, 38, 38, 0.06); --doh-warn: #ca8a04; --doh-warn-soft: rgba(202, 138, 4, 0.08); --doh-shadow: 0 4px 24px rgba(0, 0, 0, 0.06); min-height: 0; margin: 0; padding: 14px 10px 24px; background: var(--doh-bg); color: var(--doh-text); font-family: inherit; }
 .doh-shell { max-width: 640px; margin: 0 auto; }
 .doh-hero, .doh-panel, .doh-item, .doh-empty, .doh-toast { border: 1px solid var(--doh-border); background: var(--doh-card); box-shadow: var(--doh-shadow); backdrop-filter: blur(14px); }
 .doh-hero { border-radius: 14px; padding: 12px; }
 .doh-eyebrow { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 999px; background: rgba(255, 255, 255, 0.72); color: var(--doh-primary); font-size: 10px; font-weight: 700; letter-spacing: 0.04em; }
 .doh-title { margin: 10px 0 6px; font-size: clamp(18px, 2.8vw, 24px); line-height: 1.08; font-weight: 800; }
 .doh-subtitle { margin: 0; color: var(--doh-muted); font-size: 11px; line-height: 1.6; }
 .doh-stats { display: flex; gap: 8px; margin-top: 10px; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
 .doh-stats::-webkit-scrollbar, .doh-tabs::-webkit-scrollbar { display: none; }
 .doh-stat { min-width: 100px; padding: 8px 10px; border-radius: 10px; background: rgba(255, 255, 255, 0.8); border: 1px solid rgba(15, 23, 42, 0.06); }
 .doh-stat strong { display: block; font-size: 15px; line-height: 1.1; }
 .doh-stat span { display: block; margin-top: 2px; color: var(--doh-muted); font-size: 10px; }
 .doh-tabs { display: flex; gap: 8px; margin: 10px 0; overflow-x: auto; padding-bottom: 2px; scrollbar-width: none; }
 .doh-tab { min-width: 92px; min-height: 34px; border: 1px solid transparent; border-radius: 999px; background: rgba(255, 255, 255, 0.78); color: var(--doh-muted); font-size: 11px; font-weight: 700; cursor: pointer; }
 .doh-tab.active { background: rgba(234, 88, 12, 0.12); border-color: rgba(234, 88, 12, 0.2); color: var(--doh-primary); }
 .doh-panel { border-radius: 12px; padding: 12px; }
 .doh-panel-accent { background: linear-gradient(180deg, rgba(255, 247, 237, 0.98), rgba(255, 255, 255, 0.96)), var(--doh-card); border-color: rgba(234, 88, 12, 0.12); }
 .doh-section-title { margin: 0 0 6px; font-size: 13px; font-weight: 800; }
 .doh-section-copy { margin: 0; color: var(--doh-muted); font-size: 11px; line-height: 1.6; }
 .doh-row { display: flex; gap: 8px; align-items: center; margin-top: 10px; }
 .doh-input { width: 100%; min-height: 34px; padding: 0 10px; border: 1px solid rgba(15, 23, 42, 0.12); border-radius: 10px; background: #fff; color: var(--doh-text); font-size: 11px; outline: none; }
 .doh-input:focus { border-color: rgba(234, 88, 12, 0.45); box-shadow: 0 0 0 4px rgba(234, 88, 12, 0.08); }
 .doh-toolbar, .doh-mode-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
 .doh-btn, .doh-pill, .doh-mini-btn { display: inline-flex; align-items: center; justify-content: center; border: 1px solid rgba(15, 23, 42, 0.1); background: #fff; color: var(--doh-text); font-weight: 700; cursor: pointer; }
 .doh-btn { min-height: 32px; padding: 0 12px; border-radius: 10px; font-size: 11px; }
 .doh-btn-primary { border-color: transparent; background: var(--doh-primary); color: #fff; }
 .doh-btn-soft { color: var(--doh-text); }
 .doh-btn-danger { color: var(--doh-danger); border-color: rgba(220, 38, 38, 0.16); }
 .doh-pill { min-height: 28px; padding: 0 10px; border-radius: 999px; font-size: 10px; white-space: nowrap; }
 .doh-pill.active { border-color: rgba(234, 88, 12, 0.2); background: rgba(234, 88, 12, 0.1); color: var(--doh-primary); }
 .doh-message { margin-top: 10px; padding: 10px 12px; border-radius: 10px; font-size: 11px; line-height: 1.6; }
 .doh-message-info { background: rgba(15, 98, 254, 0.08); color: #17449f; }
 .doh-message-success { background: var(--doh-success-soft); color: var(--doh-success); }
 .doh-message-warn { background: var(--doh-warn-soft); color: var(--doh-warn); }
 .doh-list { display: grid; gap: 10px; margin-top: 10px; }
 .doh-list-shell { margin-top: 12px; padding: 10px; border-radius: 14px; background: rgba(255, 243, 230, 0.9); border: 1px solid rgba(234, 88, 12, 0.12); }
 .doh-list-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
 .doh-list-head-copy { color: var(--doh-muted); font-size: 10px; line-height: 1.6; }
 .doh-inline-actions { display: flex; flex-wrap: wrap; gap: 6px; justify-content: flex-end; }
 .doh-item { border-radius: 14px; padding: 12px; border-color: rgba(234, 88, 12, 0.1); }
 .doh-item-header { display: flex; gap: 8px; align-items: flex-start; justify-content: space-between; margin-bottom: 8px; }
 .doh-item-title { min-width: 0; flex: 1; }
 .doh-item-title strong { display: block; font-size: 13px; line-height: 1.2; }
 .doh-item-url { margin-top: 4px; color: var(--doh-muted); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 10px; line-height: 1.4; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
 .doh-badge { min-width: 56px; padding: 4px 8px; border-radius: 999px; font-size: 10px; font-weight: 700; white-space: nowrap; }
 .doh-badge-ok { background: rgba(21, 128, 61, 0.12); color: var(--doh-success); }
 .doh-badge-fail { background: rgba(220, 38, 38, 0.12); color: var(--doh-danger); }
 .doh-badge-pending { background: rgba(234, 88, 12, 0.12); color: var(--doh-primary); }
 .doh-metrics { display: flex; flex-wrap: wrap; gap: 6px; font-size: 10px; }
 .doh-chip { padding: 3px 7px; border-radius: 999px; background: rgba(148, 163, 184, 0.12); color: var(--doh-muted); }
 .doh-chip-primary { background: rgba(234, 88, 12, 0.12); color: var(--doh-primary); }
 .doh-chip-browser { background: rgba(21, 128, 61, 0.08); color: var(--doh-success); }
 .doh-chip-server { background: rgba(161, 98, 7, 0.12); color: var(--doh-warn); }
 .doh-item-footer { display: flex; gap: 8px; align-items: flex-start; justify-content: space-between; margin-top: 8px; }
 .doh-item-result { flex: 1; min-width: 0; color: var(--doh-muted); font-size: 10px; line-height: 1.6; }
 .doh-item-actions { display: flex; flex-wrap: nowrap; gap: 4px; justify-content: flex-end; align-items: center; flex-shrink: 0; }
 .doh-mini-btn { min-height: 24px; padding: 0 8px; border-radius: 8px; font-size: 10px; white-space: nowrap; }
 .doh-mini-btn-primary { border-color: rgba(234, 88, 12, 0.15); background: rgba(234, 88, 12, 0.08); color: var(--doh-primary); }
 .doh-empty { border-radius: 10px; padding: 12px; text-align: center; color: var(--doh-muted); font-size: 11px; line-height: 1.6; }
 .doh-grid { display: grid; gap: 10px; }
 .doh-site-card { padding: 10px; border-radius: 10px; border: 1px solid rgba(15, 23, 42, 0.08); background: rgba(255, 255, 255, 0.78); }
 .doh-site-card strong { display: block; margin-bottom: 4px; font-size: 12px; }
 .doh-site-card p { margin: 0; color: var(--doh-muted); font-size: 10px; line-height: 1.6; }
 .doh-site-card.is-ok { border-color: rgba(21, 128, 61, 0.14); }
 .doh-site-card.is-fail { border-color: rgba(220, 38, 38, 0.14); }
 .doh-help { margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: rgba(255, 255, 255, 0.72); border: 1px dashed rgba(15, 23, 42, 0.12); }
 .doh-help h3 { margin: 0 0 8px; font-size: 12px; }
 .doh-help p, .doh-help li { color: var(--doh-muted); font-size: 11px; line-height: 1.7; }
 .doh-help ul, .doh-help ol { margin: 0; padding-left: 16px; }
 .doh-toast { position: fixed; right: 16px; bottom: 16px; z-index: 50; padding: 10px 12px; border-radius: 10px; color: var(--doh-text); opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity 180ms ease, transform 180ms ease; }
 .doh-toast.show { opacity: 1; transform: translateY(0); }
 .doh-modal-backdrop { position: fixed; inset: 0; z-index: 60; display: none; align-items: center; justify-content: center; padding: 16px; background: rgba(15, 23, 42, 0.35); backdrop-filter: blur(6px); }
 .doh-modal-backdrop.show { display: flex; }
 .doh-modal { width: min(100%, 320px); padding: 12px; border-radius: 12px; background: rgba(255, 255, 255, 0.96); border: 1px solid rgba(15, 23, 42, 0.08); box-shadow: 0 30px 60px rgba(15, 23, 42, 0.16); }
 .doh-modal h3 { margin: 0; font-size: 13px; font-weight: 800; }
 .doh-modal p { margin: 8px 0 0; color: var(--doh-muted); font-size: 10px; line-height: 1.7; }
 .doh-modal-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
 @media (max-width: 720px) { .doh-row { flex-direction: column; align-items: stretch; }
 .doh-btn { width: 100%; }
 .doh-item-footer { flex-direction: row; align-items: flex-start; justify-content: space-between; gap: 6px; }
 .doh-item-actions { flex-wrap: wrap; justify-content: flex-end; min-width: 132px; gap: 4px; }
 .doh-item-actions .doh-mini-btn { width: auto; flex: 0 0 auto; }
 .doh-item-url { white-space: normal; overflow: visible; text-overflow: clip; }
 }
 
.doh-page-shell .main-panel{padding:0!important;background:transparent;box-shadow:none}
.doh-tool *{box-sizing:border-box}.doh-tool{border-radius:12px;isolation:isolate}.doh-shell{max-width:660px}
.doh-tool .doh-panel-accent,.doh-tool .doh-modal,.doh-tool .doh-help,.doh-tool .doh-stat,.doh-tool .doh-tab,.doh-tool .doh-input,.doh-tool .doh-eyebrow{background:var(--doh-card);color:var(--doh-text);border-color:var(--doh-border)}
.doh-tool .doh-tab.active,.doh-tool .doh-chip-primary,.doh-tool .doh-mini-btn-primary{background:color-mix(in srgb,var(--doh-primary) 10%,var(--doh-card));border-color:color-mix(in srgb,var(--doh-primary) 25%,var(--doh-border));color:var(--doh-primary)}
.doh-tool .doh-btn-primary{background:var(--doh-primary);border-color:var(--doh-primary);color:#fff}.doh-tool .doh-item-description{margin:6px 0 0;font-size:11px;color:var(--doh-muted);line-height:1.6}
.doh-tool .doh-item-url{overflow-wrap:anywhere}.doh-tool button:disabled{opacity:.55;cursor:wait}.doh-tool .doh-btn,.doh-tool .doh-tab{font:inherit;font-size:12px}.doh-tool .doh-stat{flex:1;min-width:0}.doh-tool .doh-stats{overflow:visible}
.doh-tool [hidden]{display:none!important}.doh-tool .doh-modal-backdrop{z-index:1000}.doh-tool .doh-mini-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;min-height:28px;line-height:1.3}
.dm-admin{display:grid;gap:12px;color:var(--text)}.dm-admin-card{border:1px solid var(--line);border-radius:12px;padding:16px;background:var(--panel)}.dm-admin-card>summary{cursor:pointer;display:flex;align-items:center;flex-wrap:wrap;gap:10px;list-style:none}.dm-admin-card>summary:before{content:'＋';color:var(--brand)}.dm-admin-card[open]>summary:before{content:'−'}.dm-admin-card p{color:var(--text-muted);font-size:13px;line-height:1.7}.dm-admin-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.dm-admin-heading h2{margin:0}.dm-admin-heading a{font-size:13px}
.dm-admin-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.dm-admin-stats div{background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:12px}.dm-admin-stats strong{font-size:24px;display:block}.dm-admin-stats span,.dm-admin-state{font-size:12px;color:var(--text-muted)}.dm-admin-state{padding:3px 8px;background:var(--bg);border-radius:999px}.dm-admin-url{overflow-wrap:anywhere}.dm-admin-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.dm-field{display:grid;gap:6px;min-width:0;font-size:13px}.dm-field:has(textarea),.dm-check,.dm-admin-actions{grid-column:1/-1}.dm-field input,.dm-field textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--text);padding:9px;font:inherit}.dm-check{display:flex;align-items:center;gap:8px;font-size:13px}.dm-check input{width:auto}.dm-admin-actions{display:flex;gap:8px;flex-wrap:wrap}.dm-admin-error{color:var(--danger)!important;border:1px solid var(--danger);border-radius:8px;padding:10px}
@media(max-width:520px){.doh-tool{padding:10px 6px 18px}.doh-tool .doh-item-footer{flex-direction:column}.doh-tool .doh-item-actions{justify-content:flex-start;min-width:0;max-width:100%}.doh-tool .doh-mini-btn{font-size:11px}.doh-tool .doh-input{font-size:16px;min-width:0}.doh-tool .doh-tab{min-width:0;flex:1}.dm-admin-card{padding:12px}.dm-admin-stats{gap:6px}.dm-admin-stats div{padding:8px}.dm-admin-stats strong{font-size:21px}.dm-admin-stats span{font-size:11px}.dm-admin-form{grid-template-columns:1fr}.dm-field input,.dm-field textarea{font-size:16px}}
.doh-tool .doh-list-shell{background:color-mix(in srgb,var(--doh-primary) 4%,var(--doh-card));border-color:color-mix(in srgb,var(--doh-primary) 18%,var(--doh-border))}
.doh-tool .doh-mini-btn,.doh-tool .doh-btn-soft{background:var(--doh-card);color:var(--doh-text);border-color:var(--doh-border)}
.doh-tool .doh-mini-btn-primary{background:color-mix(in srgb,var(--doh-primary) 10%,var(--doh-card));color:var(--doh-primary);border-color:color-mix(in srgb,var(--doh-primary) 25%,var(--doh-border))}
.doh-tool .doh-badge-pending{background:var(--doh-bg);color:var(--doh-muted)}
html[data-color-scheme-dark-mode-theme="dark"] .doh-tool{--doh-primary:color-mix(in srgb,var(--brand,#34d984) 65%,var(--text,#e5e7eb))}