/* 生成物 —— 勿手改，勿提交（static/bundles/ 已 gitignore）。
   真源与顺序：app/static_bundles.py::BUNDLES['base-mid.css']（2 个源文件）
   再生：重启进程（main.py 导入期自动）或
   PYTHONPATH=. .venv/bin/python scripts/build_static_bundles.py
   来源：
     - runtime/content/skill-view.css
     - runtime/content/image-preview.css
*/

/* ---- runtime/content/skill-view.css ---- */
                                                               
                 
                                     
                                            
                                        
                                             
                                                                  

                                         
.skv-body {
  padding:18px 22px calc(40px + env(safe-area-inset-bottom,0px));
  background:linear-gradient(180deg,var(--neu-bg) 0%,var(--neu-bg) 220px);
  min-height:100%;box-sizing:border-box; }

                                               
.skv-md { max-width:680px;margin:0 auto;color:var(--text-1);font-size:15px;line-height:1.75;
  font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Segoe UI','Microsoft YaHei',sans-serif;
  word-wrap:break-word; }
.skv-md ::selection { background:var(--tint-soak); }
                                                
                                   
.skv-md video.md-video { max-width:100%;border-radius:10px;background:#000; }
.skv-md audio.md-audio { width:100%;height:40px; }

                                
.skv-md h1, .skv-md h2, .skv-md h3, .skv-md h4, .skv-md h5, .skv-md h6 {
  margin:1.5em 0 .65em;font-weight:700;line-height:1.35;color:var(--text-1); }
.skv-md h1 { font-size:1.65em;padding-bottom:.35em;
  border-bottom:2px solid transparent;
  border-image:linear-gradient(90deg,var(--primary),var(--primary-tint)) 1; }
.skv-md h2 { font-size:1.35em;padding-left:.55em;position:relative; }
.skv-md h2::before { content:'';position:absolute;left:0;top:.18em;bottom:.18em;
  width:4px;border-radius:2px;background:linear-gradient(180deg,var(--primary),var(--primary-2)); }
.skv-md h3 { font-size:1.18em;color:var(--primary); }
.skv-md h4 { font-size:1.05em;color:var(--text-1); }
.skv-md h5 { font-size:.95em;color:var(--text-1); }
.skv-md h6 { font-size:.9em;color:var(--text-3);font-weight:600; }
.skv-md h1:first-child, .skv-md h2:first-child, .skv-md h3:first-child { margin-top:0; }

.skv-md p { margin:.85em 0; }

               
.skv-md ul, .skv-md ol { margin:.85em 0;padding-left:1.6em; }
.skv-md li { margin:.35em 0; }
.skv-md li::marker { color:var(--primary);font-weight:600; }
.skv-md li > ul, .skv-md li > ol { margin:.2em 0; }
.skv-md li input[type="checkbox"] { margin-right:.45em;accent-color:var(--primary); }

                         
.skv-md code { padding:.15em .45em;margin:0;font-size:.88em;
  background:var(--primary-tint);color:var(--primary);border-radius:5px;
  font-family:ui-monospace,SFMono-Regular,'SF Mono',Menlo,Consolas,monospace; }
.skv-md pre { margin:1em 0;padding:14px 16px;overflow-x:auto;
  background:var(--stripe);border-radius:10px;line-height:1.55;
  box-shadow:0 1px 3px rgba(15,23,42,.12); }
.skv-md pre code { padding:0;background:transparent;color:var(--text-1);
  border-radius:0;font-size:.85rem; }

                                                   
                                                              
                                                   
.skv-md .md-table-wrap{margin:1em 0;overflow-x:auto;font-size:.92em;
  border:1px solid var(--primary-tint);border-radius:10px;}
.skv-md .md-table-wrap table{margin:0;width:100%;border-collapse:separate;border-spacing:0;}
.skv-md th, .skv-md td { padding:8px 13px;text-align:left;
  border-bottom:1px solid var(--hairline); }
.skv-md th { background:linear-gradient(180deg,var(--stripe),var(--stripe));color:var(--primary);
  font-weight:600;white-space:nowrap; }
.skv-md tr:last-child td { border-bottom:0; }
.skv-md tbody tr:nth-child(even) td { background:var(--stripe); }

                     
.skv-md blockquote { margin:1em 0;padding:.55em 1em;color:var(--text-1);
  border-left:4px solid var(--primary);background:var(--neu-bg);border-radius:0 8px 8px 0; }
.skv-md blockquote > :first-child { margin-top:0; }
.skv-md blockquote > :last-child { margin-bottom:0; }

                        
.skv-md a { color:var(--primary);text-decoration:none;font-weight:500;
  border-bottom:1px solid var(--tint-edge);
  transition:color .15s,border-color .15s; }
.skv-md a:hover { color:var(--primary-2);border-bottom-color:var(--primary-2); }
.skv-md hr { margin:1.6em 0;border:0;height:2px;border-radius:1px;
  background:linear-gradient(90deg,transparent,var(--primary-tint) 20%,var(--primary-tint) 80%,transparent); }
.skv-md img { max-width:100%;height:auto;border-radius:8px;
  box-shadow:0 1px 4px rgba(15,23,42,.1); }
.skv-md strong { font-weight:600;color:var(--text-1); }
.skv-md del { color:var(--text-3); }
.skv-md kbd { padding:.1em .4em;font-size:.85em;color:var(--primary);
  background:var(--neu-inset);border:1px solid var(--primary-tint);border-bottom-width:2px;border-radius:5px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; }

/* ---- runtime/content/image-preview.css ---- */
                                                               
                    
                                                       
                                                   
                                                                  
.ip-overlay {
    position: fixed;
    inset: 0;
    z-index: 20000;                                    
    background: rgba(0, 0, 0, 0.92);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: zoom-out;
    -webkit-tap-highlight-color: transparent;
    touch-action: none;
}

          
.ip-stage {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    cursor: default;
    touch-action: none;
}

.ip-img-wrap {
    position: relative;
    max-width: 100%;
    max-height: 100%;
    cursor: grab;
}
.ip-img-wrap:active { cursor: grabbing; }

.ip-img {
    display: block;
    max-width: 100%;
                                                        
                                                      
    max-height: 100%;
    transform-origin: 0 0;
    user-select: none;
    -webkit-user-select: none;
    pointer-events: auto;
    -webkit-user-drag: none;
}

          
.ip-close {
    position: absolute;
    top: calc(12px + env(safe-area-inset-top, 0px));
    right: 12px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: none;
    background: rgba(0, 0, 0, 0.5);
    color: #fff;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
}
.ip-close:active { background: rgba(0, 0, 0, 0.7); }

                   
.ip-title {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    text-align: center;
    color: rgba(255, 255, 255, 0.92);
    font-size: 0.88rem;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    pointer-events: none;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.ip-counter {
    margin-left: 8px;
    color: rgba(255, 255, 255, 0.65);
    font-variant-numeric: tabular-nums;
}

            
.ip-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 44px;
    height: 64px;
    border: none;
    background: rgba(0, 0, 0, 0.35);
    color: #fff;
    font-size: 1.6rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    font-family: -apple-system, BlinkMacSystemFont, sans-serif;
    -webkit-tap-highlight-color: transparent;
}
.ip-nav:active { background: rgba(0, 0, 0, 0.55); }
.ip-nav-prev { left: 12px; border-radius: 8px 8px 8px 8px; }
.ip-nav-next { right: 12px; border-radius: 8px 8px 8px 8px; }                                                    
.ip-error {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    padding: 24px;
    color: rgba(255, 255, 255, 0.75);
    font-size: 14px;
}
