/* v10.34.1 authoritative V7 UI scoped to #v7App */

#v7App{
  --gold:#c6a25b;
  --gold-dark:#a98543;
  --gold-soft:#f3ead8;
  --coffee:#5f493b;
  --coffee2:#806751;
  --green:#6f835f;
  --green-soft:#eef3ea;
  --bg:#f4f1ec;
  --paper:#fffdfa;
  --paper2:#f8f3eb;
  --text:#302720;
  --muted:#8e8278;
  --line:rgba(83,62,47,.12);
  --line2:rgba(83,62,47,.18);
  --shadow:0 14px 40px rgba(70,50,36,.08);
  font-family:Inter,"PingFang SC","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
}
#v7App *{box-sizing:border-box}
#v7App, #v7App{margin:0;min-height:100%;background:var(--bg);color:var(--text)}
#v7App button, #v7App input, #v7App select{font:inherit}
#v7App button{cursor:pointer}
#v7App .hidden{display:none!important}

/* =========================================================
   HOME
   ========================================================= */
#v7App .home-view{min-height:100vh;background:linear-gradient(180deg,#f5f7f9 0,#fff9fb 58%,#fff 100%)}
#v7App .site-header{
  height:64px;display:flex;align-items:center;border-bottom:1px solid #ece7e6;
  background:rgba(255,255,255,.96);backdrop-filter:blur(14px)
}
#v7App .header-inner{
  width:min(1180px,calc(100% - 36px));margin:auto;display:flex;align-items:center;justify-content:space-between
}
#v7App .brand{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:950;letter-spacing:-.025em}
#v7App .brand-logo{
  width:36px;height:36px;display:grid;grid-template-columns:repeat(5,4px);gap:2px;place-content:center;
  border-radius:11px;background:#fff1f6
}
#v7App .brand-logo i{width:4px;height:4px;border-radius:50%;background:#f36ba8}
#v7App .brand-logo i:nth-child(3n){background:#80d3b2}
#v7App .nav{display:flex;align-items:center;gap:14px}
#v7App .about{border:0;background:transparent;color:#696f7b;font-size:12px}
#v7App .user{
  display:flex;align-items:center;gap:8px;padding:5px 10px 5px 6px;border:1px solid #e9ebef;
  border-radius:12px;background:#f7f8fa
}
#v7App .avatar{width:29px;height:29px;display:grid;place-items:center;border-radius:50%;background:#3476ef;color:#fff;font-size:10px;font-weight:900}
#v7App .user-copy{display:grid;text-align:left}#v7App .user-copy b{font-size:10px}#v7App .user-copy small{font-size:8px;color:#9da1aa}
#v7App .home-main{width:min(960px,calc(100% - 30px));margin:auto;padding:34px 0 64px}
#v7App .hero{text-align:center}
#v7App .hero h1{margin:0;font-size:clamp(28px,3.4vw,42px);letter-spacing:-.05em}
#v7App .hero p{margin:10px 0 0;color:#7d8390;font-size:12px}
#v7App .tabs{
  width:min(720px,100%);display:grid;grid-template-columns:repeat(3,1fr);margin:22px auto 0;padding:5px;
  border:1px solid #eadfe6;border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(44,36,48,.05)
}
#v7App .tab{min-height:45px;border:0;border-radius:14px;background:transparent;color:#596070;font-size:12px;font-weight:900}
#v7App .tab.active{background:var(--gold);color:#fff}
#v7App .home-panel{display:none}#v7App .home-panel.active{display:block}
#v7App .quota{height:48px;display:flex;align-items:center;justify-content:center;gap:5px;color:#777d88;font-size:10px}#v7App .quota b{color:var(--gold-dark);font-size:12px}
#v7App .upload{
  height:310px;display:grid;place-content:center;justify-items:center;border:2px dashed #d6c29f;border-radius:18px;
  background:#fff;cursor:pointer;transition:.18s
}
#v7App .upload:hover, #v7App .upload.dragging{border-color:var(--gold);transform:translateY(-1px)}
#v7App .upload input{display:none}
#v7App .upload-icon{
  width:62px;height:62px;display:grid;place-items:center;margin-bottom:14px;border-radius:50%;
  background:var(--gold-soft);color:var(--gold);font-size:28px
}
#v7App .upload strong{font-size:14px}#v7App .upload span{margin-top:7px;color:#999eaa;font-size:10px}#v7App .upload em{margin-top:13px;color:#aaa7ae;font-size:8px;font-style:normal}

/* 最近图纸 */
#v7App .recent{margin-top:20px}
#v7App .recent-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
#v7App .recent-title{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:900}
#v7App .recent-title:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
#v7App .recent-head small{color:#a2a5ad;font-size:8px}
#v7App .recent-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
#v7App .recent-card{overflow:hidden;border:1px solid #eee5e2;border-radius:14px;background:#fff;box-shadow:0 8px 24px rgba(40,34,45,.04)}
#v7App .recent-preview{height:118px;display:grid;place-items:center;background:#faf4eb}
#v7App .recent-preview .art{width:82px;height:82px;display:grid;place-items:center;border-radius:16px;background:#fff;font-size:38px;box-shadow:0 6px 18px rgba(60,45,35,.07)}
#v7App .recent-body{padding:10px}
#v7App .recent-top{display:flex;justify-content:space-between;gap:6px}#v7App .recent-top h4{margin:0;font-size:10px}#v7App .badge{padding:3px 6px;border-radius:999px;background:var(--gold-soft);color:var(--coffee);font-size:7px;font-weight:900}
#v7App .recent-meta{display:block;margin-top:5px;color:#9ba0aa;font-size:8px}
#v7App .recent-actions{display:flex;gap:6px;margin-top:9px}
#v7App .recent-actions button{min-height:29px;padding:0 9px;border:0;border-radius:8px;font-size:8px;font-weight:900}
#v7App .recent-actions .continue{background:#151d2b;color:#fff}#v7App .recent-actions .download{background:#eef8ef;color:#2d9c55}

#v7App .alt-entry{
  min-height:250px;display:grid;place-content:center;justify-items:center;margin-top:48px;padding:30px;
  border:1px solid #e8e0dc;border-radius:18px;background:#fff;text-align:center
}
#v7App .alt-icon{width:58px;height:58px;display:grid;place-items:center;margin-bottom:12px;border-radius:16px;background:var(--gold-soft);color:var(--coffee);font-size:24px}
#v7App .alt-entry strong{font-size:15px}#v7App .alt-entry p{max-width:460px;margin:8px auto 0;color:#969ba5;font-size:9px;line-height:1.7}
#v7App .alt-entry button{min-height:40px;margin-top:16px;padding:0 18px;border:0;border-radius:10px;background:var(--gold);color:#fff;font-size:10px;font-weight:900}

/* 首页介绍 */
#v7App .info-zone{margin-top:66px;padding-top:60px;border-top:1px solid #eee7e4}
#v7App .info-head{text-align:center}#v7App .info-head h2{margin:0;font-size:30px;letter-spacing:-.045em}#v7App .info-head p{margin:10px 0 0;color:#9a9da5;font-size:10px}
#v7App .feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:30px}
#v7App .feature-card{min-height:210px;padding:22px;border:1px solid #eee7e4;border-radius:18px;background:#fff;box-shadow:0 12px 36px rgba(60,45,35,.045)}
#v7App .feature-no{color:var(--gold-dark);font-size:9px;font-weight:900;letter-spacing:.14em}
#v7App .feature-icon{width:48px;height:48px;display:grid;place-items:center;margin:20px 0 16px;border-radius:14px;background:#f7f2ea;color:var(--gold-dark);font-size:20px}
#v7App .feature-card h3{margin:0;font-size:16px}#v7App .feature-card p{margin:8px 0 0;color:#9296a0;font-size:9px;line-height:1.7}
#v7App .workflow-zone{margin-top:72px;padding:60px 0 20px;background:#fff9fb;border-radius:28px}
#v7App .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:32px 44px 0}
#v7App .step{text-align:center}#v7App .step b{width:38px;height:38px;display:grid;place-items:center;margin:auto;border-radius:50%;background:var(--gold);color:#fff;font-size:9px}#v7App .step strong{display:block;margin-top:12px;font-size:11px}#v7App .step span{display:block;margin-top:5px;color:#9a9da5;font-size:8px}

/* =========================================================
   CROP MODAL
   ========================================================= */
#v7App .layer{
  position:fixed;z-index:120;inset:0;display:none;align-items:center;justify-content:center;padding:22px;
  background:rgba(31,29,34,.5);backdrop-filter:blur(8px)
}
#v7App .layer.open{display:flex}
#v7App .dialog{width:min(900px,100%);max-height:92vh;overflow:auto;border-radius:22px;background:#fff;box-shadow:0 28px 90px rgba(22,18,26,.25)}
#v7App .dialog:before{content:"";display:block;height:6px;background:linear-gradient(90deg,var(--gold),#b88e45)}
#v7App .dialog-head{display:flex;justify-content:space-between;gap:16px;padding:21px 24px 15px;border-bottom:1px solid #eee7e3}
#v7App .dialog-head h3{margin:0;font-size:18px}#v7App .dialog-head p{margin:6px 0 0;color:#9296a0;font-size:9px}
#v7App .close-btn{width:34px;height:34px;border:0;border-radius:50%;background:#f4f5f6;color:#747985;font-size:19px}
#v7App .crop-body{padding:18px 24px}
#v7App .crop-stage{
  position:relative;height:470px;overflow:hidden;border-radius:16px;background:
    linear-gradient(45deg,#eee 25%,transparent 25%) 0 0/18px 18px,
    linear-gradient(-45deg,#eee 25%,transparent 25%) 0 9px/18px 18px,
    linear-gradient(45deg,transparent 75%,#eee 75%) 9px -9px/18px 18px,
    linear-gradient(-45deg,transparent 75%,#eee 75%) -9px 0/18px 18px,#fafafa
}
#v7App .crop-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;user-select:none;pointer-events:none}
#v7App .crop-placeholder{
  position:absolute;inset:0;display:grid;place-items:center;
  background:radial-gradient(circle at 35% 35%,#d7a77c 0 10%,transparent 11%),radial-gradient(circle at 63% 43%,#bc7758 0 9%,transparent 10%),linear-gradient(135deg,#29272a 0 28%,#c28a65 29% 55%,#252326 56% 80%,#e3bc90 81%);
  color:#fff;font-size:18px;font-weight:900;letter-spacing:.14em
}
#v7App .crop-box{
  position:absolute;left:15%;top:12%;width:70%;height:72%;
  border:2px solid #fff;box-shadow:0 0 0 9999px rgba(0,0,0,.48),0 0 0 1px rgba(0,0,0,.15);
  cursor:move;touch-action:none
}
#v7App .crop-box:before, #v7App .crop-box:after{content:"";position:absolute;background:rgba(255,255,255,.72)}
#v7App .crop-box:before{left:33.333%;top:0;width:1px;height:100%;box-shadow:calc(100% + 33.333%) 0 rgba(255,255,255,.72)}
#v7App .crop-box:after{top:33.333%;left:0;width:100%;height:1px;box-shadow:0 calc(100% + 33.333%) rgba(255,255,255,.72)}
#v7App .crop-handle{position:absolute;width:18px;height:18px;border:3px solid #fff;background:var(--gold);border-radius:50%;touch-action:none}
#v7App .crop-handle.tl{left:-10px;top:-10px;cursor:nwse-resize}#v7App .crop-handle.br{right:-10px;bottom:-10px;cursor:nwse-resize}
#v7App .crop-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px 22px}
#v7App .crop-note{color:#8f929b;font-size:9px;line-height:1.6}#v7App .crop-note b{color:var(--coffee)}
#v7App .crop-actions{display:flex;gap:8px}#v7App .crop-actions button{min-height:40px;padding:0 18px;border:1px solid #e4ded9;border-radius:10px;background:#fff;font-size:10px;font-weight:900}#v7App .crop-actions .primary{border-color:var(--gold);background:var(--gold);color:#fff}

/* =========================================================
   GENERATE MODAL
   ========================================================= */
#v7App .generate-dialog{width:min(900px,100%)}
#v7App .modal-body{display:grid;grid-template-columns:265px 1fr;gap:14px;padding:18px 25px}
#v7App .style-list{display:grid;gap:8px}
#v7App .style-choice{min-height:70px;display:grid;grid-template-columns:15px 1fr;gap:9px;align-items:center;padding:10px;border:1px solid #ebe7eb;border-radius:11px;background:#fff;text-align:left}
#v7App .style-choice.active{border-color:var(--gold);background:#fcf8f0}
#v7App .dot{width:14px;height:14px;border:1.5px solid #c2c5ce;border-radius:50%}#v7App .style-choice.active .dot{border:4px solid var(--gold)}
#v7App .style-choice b{font-size:11px}#v7App .style-choice small{display:block;margin-top:4px;color:#969aa5;font-size:8px}
#v7App .examples{padding:12px;border:1px solid #eee7e4;border-radius:13px;background:#fdfbf8}
#v7App .examples>strong{font-size:10px}
#v7App .example-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}
#v7App .example{min-height:178px;padding:7px;border:1px solid #eee7e4;border-radius:10px;background:#fff;position:relative}
#v7App .example.active{border-color:var(--gold);box-shadow:0 0 0 2px rgba(198,162,91,.11)}
#v7App .example-label{position:absolute;z-index:2;top:8px;left:8px;padding:4px 7px;border-radius:999px;background:#fff;color:var(--coffee);font-size:8px;font-weight:900}
#v7App .example-visual{height:100%;min-height:162px;display:grid;place-items:center;border-radius:8px;font-size:44px}
#v7App .example-visual.anime{background:linear-gradient(145deg,#f5e1d1,#efc49c,#ddaf7b)}
#v7App .example-visual.chibi{background:linear-gradient(145deg,#f4e7cf,#e9bc92,#d69b69)}
#v7App .example-visual.real{background:linear-gradient(145deg,#ead9c6,#c8aa8c,#96765d)}
#v7App .example-note{margin:9px 1px 0;color:#9ca0a8;font-size:8px}
#v7App .generation-settings{margin:0 25px 18px;padding:15px;border:1px solid #eee7e4;border-radius:13px;background:#fcfbf9}
#v7App .settings-title{display:flex;justify-content:space-between;margin-bottom:11px}#v7App .settings-title strong{font-size:11px}#v7App .settings-title span{color:#a0a4ad;font-size:8px}
#v7App .settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#v7App .setting{display:grid;gap:6px}#v7App .setting span{color:#747986;font-size:8px;font-weight:800}
#v7App .setting select{min-height:40px;padding:0 11px;border:1px solid #e5e2df;border-radius:9px;background:#fff;color:#313641;font-size:10px;font-weight:750}
#v7App .generation-bottom{display:flex;align-items:center;gap:14px;margin:0 25px 24px}
#v7App .generation-summary{flex:1;color:#9296a0;font-size:8px;line-height:1.6}#v7App .generation-summary b{color:var(--gold)}
#v7App .generate-btn{width:min(330px,100%);min-height:44px;border:0;border-radius:10px;background:var(--gold);color:#fff;font-size:11px;font-weight:900}

/* =========================================================
   EDITOR BASE
   ========================================================= */
#v7App .editor-view{display:none;min-height:100vh;background:#eee5d8}
#v7App .editor-view.active{display:block}
#v7App .editor-desktop{display:block;min-height:100vh}

/* top: smaller brand / tabs / controls */
#v7App .editor-top{
  position:relative;z-index:20;height:68px;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,auto);
  align-items:center;gap:12px;padding:0 14px;border-bottom:1px solid var(--line);background:rgba(255,253,249,.97)
}
#v7App .editor-left{display:flex;align-items:center;gap:8px;min-width:0}
#v7App .home-btn{width:42px;height:42px;border:0;border-radius:11px;background:var(--gold-soft);color:var(--coffee);font-size:9px;font-weight:1000}
#v7App .view-tabs{display:flex;gap:3px;padding-right:8px;border-right:1px solid var(--line)}
#v7App .view-tab{width:55px;height:46px;display:grid;place-items:center;border:0;border-radius:10px;background:transparent;color:#978b81;font-size:8px;font-weight:900}
#v7App .view-tab span{font-size:17px}#v7App .view-tab.active{background:var(--gold-soft);color:var(--coffee)}
#v7App .top-adjust{display:flex;gap:7px}
#v7App .top-adjust label{min-width:160px;height:44px;display:grid;grid-template-columns:30px 1fr 22px;gap:5px;align-items:center;padding:0 10px;border:1px solid var(--line);border-radius:12px;background:#fff}
#v7App .top-adjust span{font-size:7px;color:var(--muted);font-weight:900}#v7App .top-adjust b{font-size:9px}
#v7App input[type=range]{width:100%;accent-color:var(--green)}
#v7App .tools{display:flex;justify-content:flex-end;gap:3px}
#v7App .tools button{width:54px;height:50px;display:grid;place-items:center;border:0;border-radius:11px;background:transparent;color:#66594f;position:relative}
#v7App .tools button span{font-size:19px}#v7App .tools button b{font-size:7px}#v7App .tools button.active{background:var(--green-soft);color:#526748}

/* desktop tool dropdown directly under clicked button */
#v7App .desktop-tool-pop{
  position:fixed;z-index:70;display:none;align-items:center;gap:4px;padding:7px 9px;
  border:1px solid var(--line);border-radius:14px;background:#fffdfa;box-shadow:0 12px 30px rgba(70,50,36,.13)
}
#v7App .desktop-tool-pop.open{display:flex}
#v7App .desktop-tool-pop .pop-label{padding:0 5px;color:var(--muted);font-size:8px;font-weight:900}
#v7App .desktop-tool-pop button{min-width:48px;height:34px;padding:0 10px;border:0;border-radius:9px;background:transparent;color:#70645b;font-size:8px;font-weight:900}
#v7App .desktop-tool-pop button.active{background:var(--green);color:#fff}

/* pattern */
#v7App .desktop-pattern{
  display:grid;grid-template-columns:215px minmax(0,1fr) 248px;gap:11px;height:calc(100vh - 68px);padding:11px;background:#ebe1d3
}
#v7App .side-panel{min-width:0;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:#fffdfa;box-shadow:var(--shadow)}
#v7App .panel-head{padding:14px 14px 9px}#v7App .panel-head h3{margin:0;font-size:14px}#v7App .panel-head small{display:block;margin-top:4px;color:var(--muted);font-size:7px}
#v7App .color-scroll{min-height:0;overflow-y:auto;padding:0 10px 12px;scrollbar-width:thin;scrollbar-color:#a79b91 transparent}
#v7App .used-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}#v7App .palette-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
#v7App .color-card{min-height:72px;display:grid;place-items:center;align-content:center;gap:5px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff}
#v7App .color-card.selected{outline:2px solid var(--gold);outline-offset:-2px}
#v7App .color-dot{width:43px;height:43px;border-radius:50%;border:1px solid rgba(0,0,0,.06)}#v7App .color-card b{font-size:7px}#v7App .color-card small{color:var(--muted);font-size:6px}

#v7App .canvas-area{position:relative;min-width:0;min-height:0;overflow:hidden;border:1px solid var(--line);border-radius:18px;background-color:#e9dfd1;background-image:linear-gradient(rgba(94,71,52,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(94,71,52,.055) 1px,transparent 1px);background-size:34px 34px;box-shadow:var(--shadow)}
#v7App .canvas-overlay{position:absolute;z-index:5;left:12px;right:12px;top:12px;display:flex;justify-content:space-between;pointer-events:none}
#v7App .source-card{width:136px;padding:7px;border-radius:13px;background:rgba(255,253,249,.95);border:1px solid var(--line);pointer-events:auto}
#v7App .source-tabs{display:grid;grid-template-columns:1fr 1fr;gap:2px}#v7App .source-tabs span{height:25px;display:grid;place-items:center;border-radius:7px;font-size:7px}#v7App .source-tabs span:first-child{background:var(--green);color:#fff}
#v7App .source-thumb{height:102px;margin-top:6px;display:grid;place-items:center;border-radius:8px;background:radial-gradient(circle at 38% 34%,#d09a72 0 12%,transparent 13%),radial-gradient(circle at 62% 45%,#be7957 0 9%,transparent 10%),linear-gradient(135deg,#282729 0 28%,#c58b64 29% 54%,#242326 55% 80%,#d8ad7e 81%);color:#fff;font-size:8px;font-weight:900;background-size:cover;background-position:center}
#v7App .zoom{height:36px;display:flex;align-items:center;gap:3px;padding:0 6px;border:1px solid var(--line);border-radius:999px;background:rgba(255,253,249,.96);pointer-events:auto}
#v7App .zoom button{width:28px;height:28px;border:0;border-radius:50%;background:transparent;color:#6d6158;font-size:16px}#v7App .zoom b{min-width:40px;text-align:center;font-size:8px}
#v7App .canvas-viewport{width:100%;height:100%;overflow:auto;display:grid;place-items:center;padding:60px 56px 48px}
#v7App .board{--cell:9px;display:grid;grid-template-columns:repeat(var(--cols),var(--cell));grid-auto-rows:var(--cell);width:max-content;height:max-content;border:6px solid #5d473a;background:#f5eadb;box-shadow:0 11px 28px rgba(64,44,31,.24)}
#v7App .cell{width:var(--cell);height:var(--cell);border:0;border-right:1px solid rgba(75,57,43,.14);border-bottom:1px solid rgba(75,57,43,.14);padding:0}

/* canvas bottom controls */
#v7App .canvas-bottom-left, #v7App .canvas-bottom-right{position:absolute;z-index:8;bottom:11px;display:flex;gap:6px}
#v7App .canvas-bottom-left{left:12px}#v7App .canvas-bottom-right{right:12px}
#v7App .canvas-action{
  width:42px;height:38px;display:grid;place-items:center;border:1px solid var(--line);border-radius:11px;background:#fffdfa;
  color:#6b5f56;box-shadow:0 8px 22px rgba(60,45,35,.08);font-size:17px;font-weight:900
}
#v7App .canvas-action.active{background:var(--green-soft);color:#526748}
#v7App .canvas-hint{position:absolute;left:50%;bottom:11px;transform:translateX(-50%);padding:6px 11px;border:1px solid var(--line);border-radius:999px;background:rgba(255,253,249,.9);color:#8b7f75;font-size:7px;white-space:nowrap}
#v7App .tablet-dock{display:none}

/* effect desktop */
#v7App .desktop-effect{display:none;grid-template-columns:minmax(0,1fr) 350px;gap:11px;height:calc(100vh - 68px);padding:11px;background:#ece2d5}
#v7App .desktop-effect.active{display:grid}#v7App .desktop-pattern.hidden{display:none}
#v7App .effect-stage{display:grid;place-items:center;border-radius:20px;background:#9a795c;overflow:hidden}
#v7App .effect-frame{width:min(70%,760px);aspect-ratio:.84;display:grid;place-items:center;padding:46px;background:#7e6049;box-shadow:0 12px 32px rgba(57,39,27,.22)}
#v7App .effect-board{--ecell:10px;display:grid;grid-template-columns:repeat(var(--cols),var(--ecell));grid-auto-rows:var(--ecell);width:max-content;height:max-content}
#v7App .effect-bead{width:var(--ecell);height:var(--ecell);border-radius:35%;box-shadow:inset 0 0 2px rgba(255,255,255,.4)}
#v7App .effect-panel{padding:26px;border:1px solid var(--line);border-radius:20px;background:#fffdfa;box-shadow:var(--shadow)}
#v7App .effect-title{display:flex;justify-content:space-between;align-items:center}#v7App .effect-title h3{margin:0;font-size:17px}#v7App .effect-title b{font-size:9px;color:var(--gold-dark)}
#v7App .effect-panel p{color:var(--muted);font-size:8px;text-align:right}
#v7App .effect-select{display:grid;gap:7px;margin-top:14px;padding:17px;border-radius:17px;background:var(--paper2)}#v7App .effect-select span{font-size:13px;font-weight:900}#v7App .effect-select select{border:0;background:transparent;font-size:10px;font-weight:800}
#v7App .effect-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:18px}#v7App .effect-actions button{min-height:42px;border:1px solid var(--line);border-radius:11px;background:#fff;font-size:9px;font-weight:900}#v7App .effect-actions .primary{background:var(--coffee);color:#fff}

/* =========================================================
   TABLET
   ========================================================= */
@media(max-width:1100px) and (min-width:701px){
  #v7App .editor-top{height:64px;grid-template-columns:1fr auto;padding:0 9px}#v7App .top-adjust label{min-width:135px}#v7App .tools button{width:42px}#v7App .tools b{display:none}
  #v7App .desktop-pattern{grid-template-columns:150px minmax(0,1fr);height:calc(100vh - 64px);padding-bottom:86px}
  #v7App .palette-panel{display:none}#v7App .used-grid{grid-template-columns:1fr}#v7App .color-card{min-height:64px}#v7App .color-dot{width:38px;height:38px}
  #v7App .tablet-dock{position:absolute;z-index:5;left:162px;right:11px;bottom:11px;height:64px;display:grid;grid-template-columns:48px 1fr;align-items:center;padding:7px;border:1px solid var(--line);border-radius:14px;background:#fffdfa;box-shadow:var(--shadow)}
  #v7App .tablet-dock>span{font-size:8px;font-weight:900}#v7App .tablet-strip{display:flex;gap:6px;overflow-x:auto}#v7App .tablet-strip .color-card{flex:0 0 54px;min-height:48px;padding:3px}#v7App .tablet-strip .color-dot{width:28px;height:28px}#v7App .tablet-strip small{display:none}
  #v7App .desktop-effect{height:calc(100vh - 64px);grid-template-columns:1fr 270px}#v7App .effect-panel{padding:18px}
}

/* =========================================================
   MOBILE
   ========================================================= */
#v7App .editor-mobile{display:none}
@media(max-width:700px){
  #v7App .site-header{height:58px}#v7App .header-inner{width:calc(100% - 20px)}#v7App .brand{font-size:13px}#v7App .about, #v7App .user-copy{display:none}
  #v7App .home-main{width:calc(100% - 20px);padding-top:24px}#v7App .tabs{grid-template-columns:repeat(3,1fr)}#v7App .tab{font-size:9px;padding:0 4px}
  #v7App .upload{height:270px}#v7App .recent-grid{grid-template-columns:1fr}
  #v7App .feature-grid{grid-template-columns:1fr}#v7App .steps{grid-template-columns:1fr 1fr;margin:28px 16px 0}#v7App .workflow-zone{padding-top:46px}#v7App .info-head h2{font-size:25px}
  #v7App .layer{align-items:flex-end;padding:0}#v7App .dialog{width:100%;max-height:92vh;border-radius:22px 22px 0 0}
  #v7App .crop-body{padding:14px 14px}#v7App .crop-stage{height:48vh}#v7App .crop-footer{display:grid;padding:12px 14px 16px}#v7App .crop-actions{display:grid;grid-template-columns:1fr 1fr}#v7App .crop-actions button{width:100%}
  #v7App .modal-body{grid-template-columns:1fr;padding:14px}#v7App .example{min-height:116px}#v7App .example-visual{min-height:102px;font-size:32px}#v7App .generation-settings{margin:0 14px 12px}#v7App .settings-grid{grid-template-columns:1fr}#v7App .generation-bottom{display:grid;margin:0 14px 16px}#v7App .generate-btn{width:100%}

  #v7App body.editor-open{overflow:hidden}
  #v7App .editor-desktop{display:none}
  #v7App .editor-mobile{height:100dvh;display:flex;flex-direction:column;min-height:0;background:#f0e6d8}

  /* 更小顶栏 */
  #v7App .m-top{flex:0 0 46px;display:grid;grid-template-columns:38px 1fr;align-items:center;gap:7px;padding:4px 7px;border-bottom:1px solid var(--line);background:#fffdfa}
  #v7App .m-home{width:36px;height:36px;border:0;border-radius:10px;background:var(--gold-soft);color:var(--coffee);font-size:8px;font-weight:900}
  #v7App .m-title{display:grid}#v7App .m-title b{font-size:12px}#v7App .m-title span{color:var(--muted);font-size:6px}

  /* 固定功能栏 + 右侧二级选项槽 */
  #v7App .m-tools{flex:0 0 56px;display:flex;gap:3px;padding:4px 6px;border-bottom:1px solid var(--line);background:#fffdfa;overflow:hidden}
  #v7App .m-tools>button{flex:0 0 43px;height:47px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:#6e6258}
  #v7App .m-tools>button.active{background:var(--green-soft);color:#526748}
  #v7App .m-tools>button span{font-size:16px}#v7App .m-tools>button b{font-size:6px}
  #v7App .m-tool-slot{
    flex:1;min-width:0;display:flex;align-items:center;justify-content:center;gap:3px;padding-left:5px;border-left:1px solid var(--line)
  }
  #v7App .m-tool-slot .empty{color:#b0aaa3;font-size:7px}
  #v7App .m-tool-slot button{min-width:34px;height:32px;padding:0 7px;border:0;border-radius:8px;background:#f7f3ed;color:#73675e;font-size:7px;font-weight:900}
  #v7App .m-tool-slot button.active{background:var(--green);color:#fff}

  /* 画布更长 */
  #v7App .m-canvas{flex:1 1 auto;min-height:250px;display:flex;flex-direction:column;overflow:hidden;background-color:#eadfce;background-image:linear-gradient(rgba(94,71,52,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(94,71,52,.055) 1px,transparent 1px);background-size:28px 28px}
  #v7App .m-canvas-head{flex:0 0 34px;display:flex;align-items:center;justify-content:space-between;padding:3px 7px;color:#887a6f;font-size:7px}
  #v7App .m-source-btn{height:27px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:#fffdfa;color:#6e6258;font-size:7px;font-weight:900}
  #v7App .m-zoom{display:flex;align-items:center;gap:2px;padding:1px 4px;border:1px solid var(--line);border-radius:999px;background:rgba(255,253,249,.92)}
  #v7App .m-zoom button{width:26px;height:26px;border:0;border-radius:50%;background:transparent}#v7App .m-zoom b{min-width:34px;text-align:center;font-size:7px}
  #v7App .m-viewport{position:relative;flex:1;min-height:0;overflow:auto;padding:12px;overscroll-behavior:contain;touch-action:pan-x pan-y}
  #v7App .m-board{--cell:7px;margin:0 auto}#v7App .m-effect{--ecell:7px;display:none;grid-template-columns:repeat(var(--cols),var(--ecell));grid-auto-rows:var(--ecell);width:max-content;height:max-content;margin:0 auto;padding:20px;background:#7e6049}
  #v7App .m-effect.active{display:grid}

  #v7App .m-source-pop{
    position:absolute;z-index:20;left:8px;top:7px;width:122px;display:none;padding:7px;border:1px solid var(--line);border-radius:12px;background:rgba(255,253,249,.96);box-shadow:0 10px 26px rgba(60,45,35,.15)
  }
  #v7App .m-source-pop.open{display:block}#v7App .m-source-pop-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}#v7App .m-source-pop-head b{font-size:7px}#v7App .m-source-pop-head button{width:22px;height:22px;border:0;border-radius:50%;background:#f4f2ef;font-size:12px}
  #v7App .m-source-thumb{height:96px;border-radius:8px;background:radial-gradient(circle at 38% 34%,#d09a72 0 12%,transparent 13%),radial-gradient(circle at 62% 45%,#be7957 0 9%,transparent 10%),linear-gradient(135deg,#282729 0 28%,#c58b64 29% 54%,#242326 55% 80%,#d8ad7e 81%);background-size:cover;background-position:center}

  /* 画布左下撤销/重做、右下镜像 */
  #v7App .m-canvas-actions-left, #v7App .m-canvas-actions-right{position:absolute;z-index:18;bottom:8px;display:flex;gap:5px}
  #v7App .m-canvas-actions-left{left:8px}#v7App .m-canvas-actions-right{right:8px}
  #v7App .m-canvas-action{width:38px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:#fffdfa;color:#6d6158;box-shadow:0 7px 18px rgba(60,45,35,.1);font-size:15px}
  #v7App .m-canvas-action.active{background:var(--green-soft);color:#526748}

  /* 更紧凑固定控制条 */
  #v7App .m-adjust{flex:0 0 56px;display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px 6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fffdfa}
  #v7App .m-adjust label{display:grid;gap:2px;padding:4px 7px;border:1px solid var(--line);border-radius:9px;background:#fff}#v7App .m-adjust label>div{display:flex;justify-content:space-between}#v7App .m-adjust span{font-size:7px;color:var(--muted);font-weight:900}#v7App .m-adjust b{font-size:8px}

  /* 当前图层颜色固定更小 */
  #v7App .m-used-fixed{flex:0 0 66px;padding:5px 6px;border-bottom:1px solid var(--line);background:#fff}
  #v7App .m-color-head{display:flex;justify-content:space-between;align-items:center}#v7App .m-color-head b{font-size:8px}#v7App .m-color-head span{font-size:6px;color:var(--muted)}
  #v7App .m-brand{padding:3px 6px;border-radius:999px;background:var(--gold-soft)!important;color:var(--coffee)!important;font-weight:900}
  #v7App .m-used{display:flex;gap:5px;overflow-x:auto;margin-top:4px;scrollbar-width:none}#v7App .m-used::-webkit-scrollbar{display:none}
  #v7App .m-used .color-card{flex:0 0 50px;min-height:43px;display:flex;flex-direction:column;gap:2px;padding:2px;border:0;background:transparent}#v7App .m-used .color-dot{width:28px;height:28px}#v7App .m-used .color-card b{font-size:6px}#v7App .m-used .color-card small{display:none}

  /* 全部颜色固定区域上下滚动 */
  #v7App .m-palette-zone{flex:0 0 132px;min-height:0;overflow-y:auto;padding:5px 6px 8px;background:#fff;overscroll-behavior:contain;scrollbar-width:thin}
  #v7App .m-palette-head{display:flex;justify-content:space-between;align-items:center;margin:0 2px 4px}#v7App .m-palette-head b{font-size:8px}#v7App .m-palette-head span{font-size:6px;color:var(--muted)}
  #v7App .m-palette{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}#v7App .m-palette .color-card{min-height:52px;padding:3px}#v7App .m-palette .color-dot{width:29px;height:29px}#v7App .m-palette small{display:none}

  /* 烫豆效果手机：隐藏工具、调整、颜色；改成两个选择框 */
  #v7App .editor-mobile.effect-mode .m-tools, #v7App .editor-mobile.effect-mode .m-adjust, #v7App .editor-mobile.effect-mode .m-used-fixed, #v7App .editor-mobile.effect-mode .m-palette-zone{display:none}
  #v7App .m-effect-options{display:none;flex:0 0 148px;padding:7px;background:#fffdfa;border-top:1px solid var(--line);overflow-y:auto}
  #v7App .editor-mobile.effect-mode .m-effect-options{display:grid;grid-template-columns:1fr;gap:7px}
  #v7App .m-effect-card{display:grid;gap:5px;padding:10px 12px;border-radius:14px;background:#f5eee5}
  #v7App .m-effect-card span{font-size:10px;font-weight:900}#v7App .m-effect-card select{height:32px;border:0;background:transparent;color:#51443b;font-size:8px;font-weight:800;outline:0}

  #v7App .m-bottom{flex:0 0 calc(58px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1fr;padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);background:#fffdfa}
  #v7App .m-bottom button{border:0;background:transparent;display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;font-weight:900}#v7App .m-bottom button+button{border-left:1px solid var(--line)}#v7App .m-bottom .primary{background:var(--coffee);color:#fff}#v7App .m-bottom span{font-size:15px}
}
@media(max-width:390px){#v7App .m-palette{grid-template-columns:repeat(4,1fr)}#v7App .m-palette-zone{flex-basis:122px}}

/* Toast */
#v7App .toast{position:fixed;z-index:300;left:50%;bottom:24px;transform:translate(-50%,12px);padding:9px 14px;border-radius:999px;background:rgba(48,38,31,.94);color:#fff;opacity:0;pointer-events:none;transition:.18s;font-size:9px;font-weight:800}
#v7App .toast.show{opacity:1;transform:translate(-50%,0)}

/* ===================== V5 ===================== */
#v7App .faq-zone{margin-top:72px;padding:70px 0 90px;border-top:1px solid #eee9e6;background:#fff}
#v7App .faq-wrap{width:min(900px,100%);margin:0 auto}
#v7App .faq-heading{text-align:center;margin-bottom:32px}
#v7App .faq-heading h2{margin:0;font-size:34px;letter-spacing:-.045em}
#v7App .faq-heading p{margin:10px 0 0;color:#969ba5;font-size:10px}
#v7App .faq-list{border-top:1px solid #ece8e5}
#v7App .faq-item{border-bottom:1px solid #ece8e5}
#v7App .faq-question{width:100%;min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0;border:0;background:transparent;color:#171717;text-align:left;font-size:14px;font-weight:950}
#v7App .faq-question i{color:var(--gold);font-size:23px;font-style:normal;font-weight:500}
#v7App .faq-answer{display:none;padding:0 0 24px;color:#8b909b;font-size:10px;line-height:1.8}
#v7App .faq-item.open .faq-answer{display:block}

@media(min-width:701px){
  #v7App body.editor-open{overflow:hidden}
  #v7App .editor-view.active{height:100vh;min-height:0;overflow:hidden}
  #v7App .editor-top{height:74px;grid-template-columns:minmax(0,1fr) minmax(470px,auto)}
  #v7App .home-btn{width:46px;height:46px;font-size:10px}
  #v7App .view-tab{width:60px;height:51px}#v7App .view-tab span{font-size:19px}
  #v7App .top-adjust label{min-width:172px;height:48px}
  #v7App .tools button{width:58px;height:54px}#v7App .tools button span{font-size:20px}#v7App .tools button b{font-size:8px}
  #v7App .desktop-pattern, #v7App .desktop-effect{height:calc(100vh - 74px);overflow:hidden}
  #v7App .canvas-area, #v7App .canvas-viewport{height:100%;min-height:0}
  #v7App .canvas-viewport{overflow:auto}
}

#v7App .source-card{width:170px!important}
#v7App .source-tabs{grid-template-columns:1fr 1fr!important}
#v7App .source-tab-btn{height:27px;border:0;border-radius:7px;background:transparent;color:#81766d;font-size:7px;font-weight:900}
#v7App .source-tab-btn.active{background:var(--green);color:#fff}
#v7App .source-preview-frame{position:relative;height:122px;margin-top:6px;overflow:hidden;border-radius:8px;background:#e9dfd1}
#v7App .source-preview-media{position:absolute;inset:0;display:grid;place-items:center;transform-origin:center;transition:transform .12s ease}
#v7App .source-preview-media.original{background:radial-gradient(circle at 38% 34%,#d09a72 0 12%,transparent 13%),radial-gradient(circle at 62% 45%,#be7957 0 9%,transparent 10%),linear-gradient(135deg,#282729 0 28%,#c58b64 29% 54%,#242326 55% 80%,#d8ad7e 81%);background-size:cover;background-position:center}
#v7App .source-preview-media.effect{display:none;grid-template-columns:repeat(26,4px);grid-auto-rows:4px;place-content:center;gap:1px;background:#7e6049}
#v7App .source-preview-media.effect.active{display:grid}
#v7App .source-preview-media.original.hidden-preview{display:none}
#v7App .mini-effect-dot{width:4px;height:4px;border-radius:42%}
#v7App .source-preview-controls{height:28px;display:flex;align-items:center;justify-content:center;gap:4px;margin-top:5px}
#v7App .source-preview-controls button{width:27px;height:25px;border:1px solid var(--line);border-radius:8px;background:#fff;color:#6d6158;font-size:12px}
#v7App .source-preview-controls b{min-width:39px;text-align:center;font-size:7px}

@media(max-width:700px){
  #v7App .m-tool-slot .empty{display:none!important}
  #v7App .faq-zone{margin-top:48px;padding:50px 0 70px}
  #v7App .faq-heading h2{font-size:28px}#v7App .faq-question{min-height:66px;font-size:12px}#v7App .faq-answer{font-size:9px}
}

#v7App .color-card.palette-draggable{cursor:grab}
#v7App .color-card.palette-draggable.dragging-color{opacity:.45}
#v7App .color-card.drop-target{outline:3px solid var(--gold);outline-offset:-3px;background:#fffaf0}
#v7App .color-drag-ghost{position:fixed;z-index:450;width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:#fff;border:1px solid var(--line);box-shadow:0 12px 30px rgba(50,35,25,.18);pointer-events:none;transform:translate(-50%,-50%)}
#v7App .color-drag-ghost i{width:34px;height:34px;border-radius:50%}
#v7App .color-card.used-color-card{position:relative}
#v7App .color-card.used-color-card.locked-color{background:#f4f0e9}
#v7App .color-card.used-color-card.locked-color::after{content:"固定";position:absolute;top:4px;right:4px;padding:2px 4px;border-radius:999px;background:var(--coffee);color:#fff;font-size:5px;font-weight:900}
#v7App .locked-cell{box-shadow:inset 0 0 0 1px rgba(255,255,255,.48)}
#v7App .color-menu{position:fixed;z-index:500;display:none;min-width:145px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fffdfa;box-shadow:0 18px 46px rgba(50,35,25,.2)}
#v7App .color-menu.open{display:grid}
#v7App .color-menu-title{padding:6px 8px 7px;color:var(--muted);font-size:7px;font-weight:900}
#v7App .color-menu button{min-height:36px;border:0;border-radius:9px;background:transparent;color:#5f544c;text-align:left;padding:0 9px;font-size:9px;font-weight:900}
#v7App .color-menu button:hover{background:#f5f0e9}#v7App .color-menu button.danger{color:#b64c43}
@media(max-width:700px){
  #v7App .color-menu{min-width:180px;left:50%!important;top:50%!important;transform:translate(-50%,-50%);padding:9px;border-radius:16px}
  #v7App .color-menu-title{font-size:8px}#v7App .color-menu button{min-height:42px;font-size:10px}
}


/* =========================================================
   V6 · IMPORT PATTERN WIZARD
   ========================================================= */
#v7App .import-layer{
  position:fixed;z-index:620;inset:0;display:none;align-items:center;justify-content:center;
  padding:22px;background:rgba(30,28,31,.52);backdrop-filter:blur(9px)
}
#v7App .import-layer.open{display:flex}
#v7App .import-dialog{
  width:min(620px,100%);max-height:92vh;overflow:auto;border-radius:22px;background:#fffdfa;
  box-shadow:0 28px 90px rgba(34,25,20,.26)
}
#v7App .import-dialog:before, #v7App .import-calibrator:before{
  content:"";display:block;height:6px;background:linear-gradient(90deg,#df9537,#f0b15b)
}
#v7App .import-dialog-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  padding:22px 24px 15px;border-bottom:1px solid #eee7e1
}
#v7App .import-dialog-head h3{margin:0;font-size:18px;letter-spacing:-.025em}
#v7App .import-dialog-head p{margin:6px 0 0;color:#9498a1;font-size:9px;line-height:1.6}
#v7App .import-close{
  width:34px;height:34px;border:0;border-radius:50%;background:#f3f1ee;color:#766b63;font-size:18px
}
#v7App .import-file-line{
  margin-top:8px;max-width:430px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:#8c8178;font-size:8px
}
#v7App .import-info-body{padding:20px 24px 10px}
#v7App .import-field-card{
  margin-bottom:12px;padding:15px;border:1px solid #eee6df;border-radius:15px;background:#fff
}
#v7App .import-field-card>strong{display:block;margin-bottom:11px;font-size:11px}
#v7App .import-size-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
#v7App .import-field{display:grid;gap:6px}
#v7App .import-field span{color:#777c86;font-size:8px;font-weight:900}
#v7App .import-field input{
  height:42px;padding:0 12px;border:1px solid #e4dfda;border-radius:10px;background:#fff;color:#302720;
  outline:none;font-size:11px;font-weight:850
}
#v7App .import-field input:focus{border-color:#df9537;box-shadow:0 0 0 3px rgba(223,149,55,.11)}
#v7App .import-info-footer{
  display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px;padding:9px 24px 22px
}
#v7App .import-unknown-link{
  justify-self:end;grid-column:1/-1;border:0;background:transparent;color:#987142;
  text-decoration:underline;text-underline-offset:3px;font-size:8px;font-weight:850
}
#v7App .import-info-note{color:#9a9da5;font-size:8px;line-height:1.6}
#v7App .import-confirm{
  min-width:185px;height:42px;border:0;border-radius:10px;background:#df9537;color:#fff;font-size:10px;font-weight:950
}

/* 全屏校准弹窗 */
#v7App .import-calibrator{
  width:min(1180px,100%);height:min(780px,calc(100vh - 34px));display:grid;grid-template-columns:285px minmax(0,1fr);
  overflow:hidden;border-radius:22px;background:#fffdfa;box-shadow:0 30px 100px rgba(34,25,20,.28)
}
#v7App .import-side{
  min-width:0;display:flex;flex-direction:column;border-right:1px solid #eee4dc;background:#fffdfa
}
#v7App .import-side-head{padding:18px 17px 13px;border-bottom:1px solid #eee6e0}
#v7App .import-step-badge{
  display:inline-flex;align-items:center;gap:6px;padding:5px 8px;border-radius:999px;background:#fff0dd;
  color:#b16b22;font-size:7px;font-weight:950;letter-spacing:.08em
}
#v7App .import-side-head h3{margin:11px 0 0;font-size:16px;letter-spacing:-.025em}
#v7App .import-side-head p{margin:7px 0 0;color:#8f949d;font-size:8px;line-height:1.7}
#v7App .import-side-scroll{flex:1;min-height:0;overflow-y:auto;padding:13px}
#v7App .import-data-card{
  padding:11px;border:1px solid #eee5df;border-radius:12px;background:#fff
}
#v7App .import-data-card+.import-data-card{margin-top:9px}
#v7App .import-data-card>span{display:block;color:#969aa3;font-size:7px;font-weight:850}
#v7App .import-data-card>strong{display:block;margin-top:5px;font-size:11px}
#v7App .import-side-action{
  width:100%;min-height:40px;margin-top:10px;border:0;border-radius:10px;background:#df9537;color:#fff;
  font-size:9px;font-weight:950
}
#v7App .import-side-action.secondary{border:1px solid #e7ded6;background:#fff;color:#665951}
#v7App .import-side-action.hidden{display:none}
#v7App .import-help-tip{
  margin-top:9px;padding:9px;border-radius:10px;background:#f8f2eb;color:#8a7e74;font-size:7px;line-height:1.65
}

/* 网格调整 */
#v7App .import-grid-controls{display:none}
#v7App .import-grid-controls.active{display:block}
#v7App .grid-control-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:5px;margin-top:7px}
#v7App .grid-control-row button{
  height:31px;border:1px solid #e8dfd7;border-radius:8px;background:#fff;color:#6b5e55;font-size:10px;font-weight:900
}
#v7App .grid-cell-range{margin-top:8px;width:100%;accent-color:#df9537}
#v7App .grid-size-copy{display:flex;justify-content:space-between;color:#898e97;font-size:7px}

/* 识别颜色 */
#v7App .import-recognition{display:none;margin-top:10px}
#v7App .import-recognition.active{display:block}
#v7App .import-color-summary{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:7px
}
#v7App .import-color-summary strong{font-size:9px}
#v7App .import-color-summary span{color:#b16b22;font-size:8px;font-weight:950}
#v7App .import-recognized-colors{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
#v7App .import-rec-color{
  min-width:0;position:relative;display:grid;place-items:center;gap:4px;padding:6px 3px;
  border:1px solid #eee6df;border-radius:10px;background:#fff
}
#v7App .import-rec-color i{width:31px;height:31px;border-radius:50%;border:1px solid rgba(0,0,0,.06)}
#v7App .import-rec-color b{max-width:100%;overflow:hidden;text-overflow:ellipsis;font-size:6px}
#v7App .import-side-bottom{padding:11px 13px 14px;border-top:1px solid #eee5df;background:#fffdfa}
#v7App .import-enter-editor{
  width:100%;height:43px;border:0;border-radius:10px;background:#5f493b;color:#fff;font-size:10px;font-weight:950
}
#v7App .import-enter-editor:disabled{opacity:.42;cursor:not-allowed}

/* 右图区域 */
#v7App .import-workspace{
  position:relative;min-width:0;min-height:0;overflow:hidden;background-color:#eee5d8;
  background-image:linear-gradient(rgba(94,71,52,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(94,71,52,.055) 1px,transparent 1px);
  background-size:34px 34px
}
#v7App .import-workspace-top{
  position:absolute;z-index:35;left:14px;right:14px;top:13px;display:flex;align-items:center;justify-content:space-between;pointer-events:none
}
#v7App .import-workspace-top>div{
  padding:7px 11px;border:1px solid rgba(83,62,47,.12);border-radius:999px;background:rgba(255,253,249,.94);
  color:#75695f;font-size:7px;font-weight:850;pointer-events:auto
}
#v7App .import-workspace-top button{
  width:32px;height:32px;border:1px solid rgba(83,62,47,.12);border-radius:50%;background:rgba(255,253,249,.95);
  color:#74685e;font-size:14px;pointer-events:auto
}
#v7App .import-image-stage{
  position:absolute;inset:60px 28px 28px;overflow:hidden;border-radius:14px;background:#d7cabb;box-shadow:inset 0 0 0 1px rgba(83,62,47,.08)
}
#v7App .import-image-media{
  position:absolute;inset:4%;background:
    radial-gradient(circle at 38% 34%,#d09a72 0 12%,transparent 13%),
    radial-gradient(circle at 62% 45%,#be7957 0 9%,transparent 10%),
    linear-gradient(135deg,#282729 0 28%,#c58b64 29% 54%,#242326 55% 80%,#d8ad7e 81%);
  background-size:cover;background-position:center;border-radius:8px;box-shadow:0 12px 30px rgba(58,40,28,.18)
}

/* 四角点 */
#v7App .corner-points{position:absolute;inset:0;display:none;z-index:18}
#v7App .corner-points.active{display:block}
#v7App .corner-point{
  position:absolute;width:22px;height:22px;margin:-11px 0 0 -11px;border:3px solid #fff;border-radius:50%;
  background:#f0952e;box-shadow:0 4px 12px rgba(95,55,18,.35);touch-action:none;cursor:grab
}
#v7App .corner-point[data-corner="tl"]{left:9%;top:9%}
#v7App .corner-point[data-corner="tr"]{left:91%;top:9%}
#v7App .corner-point[data-corner="bl"]{left:9%;top:91%}
#v7App .corner-point[data-corner="br"]{left:91%;top:91%}
#v7App .corner-lines{position:absolute;inset:0;pointer-events:none}
#v7App .corner-hint{
  position:absolute;z-index:19;left:50%;top:16px;transform:translateX(-50%);
  padding:7px 12px;border-radius:999px;background:#f0952e;color:#fff;font-size:8px;font-weight:950
}

/* 5x5 选区 */
#v7App .sample-box{
  --sample-step:20%;position:absolute;z-index:21;left:40%;top:34%;width:150px;height:150px;display:none;
  border:3px solid #f0952e;box-shadow:0 0 0 1px rgba(255,255,255,.75);cursor:move;touch-action:none
}
#v7App .sample-box.active{display:block}
#v7App .sample-box:before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:
    linear-gradient(90deg,transparent calc(20% - 1px),#f0952e calc(20% - 1px),#f0952e 20%,transparent 20%,transparent calc(40% - 1px),#f0952e calc(40% - 1px),#f0952e 40%,transparent 40%,transparent calc(60% - 1px),#f0952e calc(60% - 1px),#f0952e 60%,transparent 60%,transparent calc(80% - 1px),#f0952e calc(80% - 1px),#f0952e 80%,transparent 80%),
    linear-gradient(0deg,transparent calc(20% - 1px),#f0952e calc(20% - 1px),#f0952e 20%,transparent 20%,transparent calc(40% - 1px),#f0952e calc(40% - 1px),#f0952e 40%,transparent 40%,transparent calc(60% - 1px),#f0952e calc(60% - 1px),#f0952e 60%,transparent 60%,transparent calc(80% - 1px),#f0952e calc(80% - 1px),#f0952e 80%,transparent 80%)
}
#v7App .sample-resize{
  position:absolute;right:-10px;bottom:-10px;width:20px;height:20px;border:3px solid #fff;border-radius:50%;background:#f0952e;
  cursor:nwse-resize;touch-action:none
}
#v7App .sample-label{
  position:absolute;left:0;top:-28px;padding:5px 8px;border-radius:8px;background:#f0952e;color:#fff;font-size:7px;font-weight:950;white-space:nowrap
}

/* 橘黄色识别网格 */
#v7App .import-grid-overlay{
  --grid-cell:18px;--grid-x:0px;--grid-y:0px;
  position:absolute;z-index:17;inset:4%;display:none;border:2px solid #ee942e;border-radius:7px;
  background-position:var(--grid-x) var(--grid-y);
  background-image:
    linear-gradient(to right,rgba(238,148,46,.9) 1px,transparent 1px),
    linear-gradient(to bottom,rgba(238,148,46,.9) 1px,transparent 1px);
  background-size:var(--grid-cell) var(--grid-cell);
  pointer-events:auto;cursor:move;touch-action:none
}
#v7App .import-grid-overlay.active{display:block}
#v7App .grid-review-hint{
  position:absolute;z-index:25;left:50%;top:15px;transform:translateX(-50%);
  display:none;padding:7px 12px;border-radius:999px;background:#fff0dd;color:#a9631e;
  border:1px solid rgba(223,149,55,.25);font-size:8px;font-weight:950
}
#v7App .grid-review-hint.active{display:block}

/* 颜色菜单 */
#v7App .import-color-menu{
  position:fixed;z-index:700;display:none;min-width:145px;padding:6px;border:1px solid #eee4dc;border-radius:12px;
  background:#fffdfa;box-shadow:0 18px 48px rgba(45,30,20,.24)
}
#v7App .import-color-menu.open{display:grid}
#v7App .import-color-menu strong{padding:6px 8px;color:#8d8178;font-size:7px}
#v7App .import-color-menu button{height:36px;border:0;border-radius:9px;background:transparent;color:#62564d;text-align:left;padding:0 9px;font-size:9px;font-weight:900}
#v7App .import-color-menu button:hover{background:#f6f0e9}
#v7App .import-color-menu .danger{color:#b54c42}

/* 替换色弹窗 */
#v7App .import-replace-layer{
  position:fixed;z-index:710;inset:0;display:none;align-items:center;justify-content:center;padding:18px;
  background:rgba(31,28,26,.38);backdrop-filter:blur(5px)
}
#v7App .import-replace-layer.open{display:flex}
#v7App .import-replace-dialog{
  width:min(640px,100%);max-height:min(650px,88vh);display:flex;flex-direction:column;overflow:hidden;
  border-radius:18px;background:#fffdfa;box-shadow:0 24px 76px rgba(45,30,20,.25)
}
#v7App .import-replace-head{display:flex;justify-content:space-between;align-items:center;padding:15px 17px;border-bottom:1px solid #eee5df}
#v7App .import-replace-head h4{margin:0;font-size:13px}#v7App .import-replace-head button{width:30px;height:30px;border:0;border-radius:50%;background:#f2efeb}
#v7App .import-replace-grid{min-height:0;overflow-y:auto;display:grid;grid-template-columns:repeat(8,1fr);gap:7px;padding:13px}
#v7App .replace-color{
  min-height:62px;display:grid;place-items:center;gap:4px;border:1px solid #eee5df;border-radius:10px;background:#fff
}
#v7App .replace-color i{width:34px;height:34px;border-radius:50%;border:1px solid rgba(0,0,0,.06)}
#v7App .replace-color b{font-size:6px}

/* mobile */
@media(max-width:700px){
  #v7App .import-layer{align-items:flex-end;padding:0}
  #v7App .import-dialog{width:100%;max-height:94vh;border-radius:22px 22px 0 0}
  #v7App .import-dialog-head{padding:18px 16px 13px}
  #v7App .import-info-body{padding:15px 14px 7px}
  #v7App .import-info-footer{padding:8px 14px 16px}
  #v7App .import-size-grid{grid-template-columns:1fr 1fr}
  #v7App .import-confirm{min-width:150px}

  #v7App .import-calibrator{
    width:100%;height:100dvh;grid-template-columns:1fr;grid-template-rows:minmax(300px,56%) minmax(0,44%);
    border-radius:0
  }
  #v7App .import-calibrator:before{display:none}
  #v7App .import-workspace{grid-row:1}
  #v7App .import-side{grid-row:2;border-right:0;border-top:1px solid #eee4dc;min-height:0}
  #v7App .import-side-head{padding:10px 12px 7px}
  #v7App .import-side-head h3{margin-top:7px;font-size:12px}
  #v7App .import-side-head p{font-size:7px;line-height:1.45}
  #v7App .import-step-badge{padding:4px 7px;font-size:6px}
  #v7App .import-side-scroll{display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:6px;padding:7px;overflow-y:auto}
  #v7App .import-data-card{margin:0!important;padding:8px}
  #v7App .import-data-card.full-mobile{grid-column:1/-1}
  #v7App .import-help-tip{grid-column:1/-1;margin:0;padding:7px}
  #v7App .import-side-action{margin-top:0;height:35px;min-height:35px}
  #v7App .import-grid-controls.active{display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr;gap:6px}
  #v7App .import-grid-controls .grid-size-copy, #v7App .import-grid-controls .grid-cell-range{grid-column:1/-1}
  #v7App .grid-control-row{margin:0}
  #v7App .import-recognition.active{grid-column:1/-1;margin:0}
  #v7App .import-recognized-colors{grid-template-columns:repeat(6,1fr);gap:4px}
  #v7App .import-rec-color{padding:4px 2px}#v7App .import-rec-color i{width:25px;height:25px}
  #v7App .import-side-bottom{padding:7px 8px calc(8px + env(safe-area-inset-bottom))}
  #v7App .import-enter-editor{height:38px}
  #v7App .import-image-stage{inset:44px 8px 8px}
  #v7App .import-workspace-top{left:7px;right:7px;top:7px}
  #v7App .import-workspace-top>div{font-size:6px}
  #v7App .sample-box{width:112px;height:112px}
  #v7App .corner-point{width:20px;height:20px}
  #v7App .corner-hint, #v7App .grid-review-hint{top:8px;font-size:6px;white-space:nowrap}
  #v7App .import-color-menu{
    min-width:180px;left:50%!important;top:50%!important;transform:translate(-50%,-50%);padding:9px;border-radius:16px
  }
  #v7App .import-color-menu button{height:42px;font-size:10px}
  #v7App .import-replace-layer{align-items:flex-end;padding:0}
  #v7App .import-replace-dialog{width:100%;max-height:75vh;border-radius:18px 18px 0 0}
  #v7App .import-replace-grid{grid-template-columns:repeat(5,1fr);padding-bottom:calc(15px + env(safe-area-inset-bottom))}
}


/* =========================================================
   V7 · IMPORT LAYOUT REWORK
   Desktop: left large image / right controls
   Mobile: top image / bottom controls
   ========================================================= */

/* 初始导入弹窗也改成左右结构 */
#v7App #importInfoLayer .import-dialog{
  width:min(1180px,calc(100vw - 36px));
  height:min(760px,calc(100vh - 36px));
  max-height:none;
  overflow:hidden;
  display:grid;
  grid-template-columns:minmax(0,1fr) 355px;
  grid-template-rows:auto 1fr auto;
}
#v7App #importInfoLayer .import-dialog:before{
  grid-column:1/-1;
}
#v7App #importInfoLayer .import-dialog-head{
  grid-column:1/-1;
  grid-row:2;
  position:absolute;
  z-index:35;
  top:12px;
  left:14px;
  right:14px;
  padding:0;
  border:0;
  pointer-events:none;
}
#v7App #importInfoLayer .import-dialog-head>div{
  width:max-content;
  max-width:64%;
  padding:9px 12px;
  border:1px solid rgba(83,62,47,.12);
  border-radius:12px;
  background:rgba(255,253,249,.95);
  box-shadow:0 8px 24px rgba(60,45,35,.07);
  pointer-events:auto;
}
#v7App #importInfoLayer .import-dialog-head h3{font-size:13px}
#v7App #importInfoLayer .import-dialog-head p{font-size:7px;margin-top:4px}
#v7App #importInfoLayer .import-file-line{font-size:7px;margin-top:5px}
#v7App #importInfoLayer .import-dialog-head .import-close{
  pointer-events:auto;
  margin-left:auto;
}
#v7App .import-info-preview{
  grid-column:1;
  grid-row:2 / 4;
  position:relative;
  min-width:0;
  min-height:0;
  padding:58px 15px 15px;
  background-color:#eee5d8;
  background-image:
    linear-gradient(rgba(94,71,52,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(94,71,52,.05) 1px,transparent 1px);
  background-size:32px 32px;
}
#v7App .import-info-preview-stage{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  border-radius:16px;
  background:#d7cabb;
  box-shadow:inset 0 0 0 1px rgba(83,62,47,.08);
}
#v7App .import-info-preview-media{
  position:absolute;
  inset:3%;
  border-radius:9px;
  background:
    radial-gradient(circle at 38% 34%,#d09a72 0 12%,transparent 13%),
    radial-gradient(circle at 62% 45%,#be7957 0 9%,transparent 10%),
    linear-gradient(135deg,#282729 0 28%,#c58b64 29% 54%,#242326 55% 80%,#d8ad7e 81%);
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
}
#v7App .import-preview-meta{
  position:absolute;
  left:26px;
  bottom:24px;
  z-index:5;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,253,249,.94);
  color:#766a61;
  border:1px solid rgba(83,62,47,.11);
  font-size:7px;
  font-weight:850;
}
#v7App .import-change-image{
  position:absolute;
  z-index:42;
  right:26px;
  top:72px;
  min-height:34px;
  padding:0 11px;
  border:1px solid rgba(83,62,47,.13);
  border-radius:10px;
  background:rgba(255,253,249,.96);
  color:#665950;
  box-shadow:0 8px 22px rgba(60,45,35,.08);
  font-size:8px;
  font-weight:950;
}

/* 初始右侧设置 */
#v7App #importInfoLayer .import-info-body{
  grid-column:2;
  grid-row:2;
  padding:22px 18px 8px;
  overflow-y:auto;
  border-left:1px solid #eee4dc;
  background:#fffdfa;
}
#v7App #importInfoLayer .import-info-footer{
  grid-column:2;
  grid-row:3;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  align-items:stretch;
  padding:10px 18px 18px;
  border-left:1px solid #eee4dc;
  border-top:1px solid #eee5df;
  background:#fffdfa;
}
#v7App #importInfoLayer .import-unknown-link{
  order:1;
  justify-self:end;
  grid-column:auto;
  margin-bottom:2px;
}
#v7App #importInfoLayer .import-info-note{
  order:2;
}
#v7App #importInfoLayer .import-confirm{
  order:3;
  width:100%;
  min-width:0;
}
#v7App .import-info-side-title{
  margin:0 0 13px;
}
#v7App .import-info-side-title small{
  display:block;
  color:#b06a23;
  font-size:7px;
  font-weight:950;
  letter-spacing:.09em;
}
#v7App .import-info-side-title h4{
  margin:6px 0 0;
  font-size:17px;
}
#v7App .import-info-side-title p{
  margin:6px 0 0;
  color:#9599a2;
  font-size:8px;
  line-height:1.6;
}

/* 校准/识别页：图片放左，大很多；工具放右 */
#v7App .import-calibrator{
  width:min(1240px,calc(100vw - 30px));
  height:min(820px,calc(100vh - 30px));
  grid-template-columns:minmax(0,1fr) 360px;
}
#v7App .import-workspace{
  grid-column:1;
  grid-row:1;
}
#v7App .import-side{
  grid-column:2;
  grid-row:1;
  border-right:0;
  border-left:1px solid #eee4dc;
}
#v7App .import-image-stage{
  inset:54px 16px 16px;
}
#v7App .import-image-media{
  inset:2%;
  background-size:contain!important;
  background-repeat:no-repeat;
  background-position:center;
}
#v7App .import-workspace-top{
  left:14px;
  right:14px;
  top:10px;
}
#v7App .import-workspace-actions{
  display:flex;
  gap:7px;
  pointer-events:auto;
}
#v7App .import-workspace-actions button{
  width:auto!important;
  min-width:32px;
  padding:0 10px;
  border-radius:10px!important;
  font-size:7px!important;
  font-weight:950;
}
#v7App .import-workspace-actions .change-pattern{
  color:#a45f1c;
  background:#fff3e3;
  border-color:rgba(223,149,55,.24);
}

/* 第一屏和校准页的图纸都尽量占满 */
#v7App .import-info-preview-media, #v7App .import-image-media{
  image-rendering:auto;
}

/* 工具栏不需要示例区域，本身保持纯设置 */
#v7App #importInfoLayer .import-field-card{
  padding:14px;
  border-radius:13px;
}
#v7App #importInfoLayer .import-field-card>strong{
  font-size:10px;
}

/* 手机端：上图、下设置 */
@media(max-width:700px){
  #v7App #importInfoLayer .import-dialog{
    width:100%;
    height:100dvh;
    max-height:none;
    border-radius:0;
    grid-template-columns:1fr;
    grid-template-rows:48% minmax(0,1fr) auto;
  }
  #v7App #importInfoLayer .import-dialog:before{display:none}
  #v7App #importInfoLayer .import-dialog-head{
    top:7px;
    left:7px;
    right:7px;
  }
  #v7App #importInfoLayer .import-dialog-head>div{
    max-width:75%;
    padding:7px 9px;
  }
  #v7App #importInfoLayer .import-dialog-head h3{font-size:11px}
  #v7App #importInfoLayer .import-dialog-head p{display:none}
  #v7App #importInfoLayer .import-file-line{max-width:190px}
  #v7App .import-info-preview{
    grid-column:1;
    grid-row:1;
    padding:48px 7px 7px;
  }
  #v7App .import-info-preview-stage{border-radius:12px}
  #v7App .import-info-preview-media{inset:2%}
  #v7App .import-change-image{
    right:14px;
    top:53px;
    min-height:30px;
    padding:0 9px;
    font-size:7px;
  }
  #v7App .import-preview-meta{
    left:14px;
    bottom:13px;
    font-size:6px;
  }
  #v7App #importInfoLayer .import-info-body{
    grid-column:1;
    grid-row:2;
    padding:11px 10px 4px;
    border-left:0;
    border-top:1px solid #eee4dc;
  }
  #v7App #importInfoLayer .import-info-footer{
    grid-column:1;
    grid-row:3;
    border-left:0;
    padding:7px 10px calc(10px + env(safe-area-inset-bottom));
  }
  #v7App .import-info-side-title{margin-bottom:8px}
  #v7App .import-info-side-title h4{font-size:13px}
  #v7App .import-info-side-title p{font-size:7px}
  #v7App #importInfoLayer .import-field-card{margin-bottom:7px;padding:9px}
  #v7App #importInfoLayer .import-field-card>strong{margin-bottom:7px}
  #v7App #importInfoLayer .import-field input{height:36px;font-size:9px}

  /* 校准页上图、下工具 */
  #v7App .import-calibrator{
    width:100%;
    height:100dvh;
    grid-template-columns:1fr;
    grid-template-rows:58% minmax(0,42%);
  }
  #v7App .import-workspace{
    grid-column:1;
    grid-row:1;
  }
  #v7App .import-side{
    grid-column:1;
    grid-row:2;
    border-left:0;
    border-top:1px solid #eee4dc;
  }
  #v7App .import-image-stage{
    inset:43px 6px 6px;
  }
  #v7App .import-workspace-actions button{
    min-height:30px;
    padding:0 8px;
    font-size:6px!important;
  }
}

