:root{color-scheme:dark;--bg:#101416;--panel:#181d20;--input:#111719;--border:#2b3337;--muted:#7f8c92;--text:#e2e9e7;--green:#9ce9ae;--green-dim:#23372d;--mono:Consolas,"SFMono-Regular",monospace}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{opacity:.35;cursor:default}svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.svg-defs{position:absolute;width:0;height:0;overflow:hidden}button:focus-visible,a:focus-visible{outline:2px solid var(--green);outline-offset:4px}button{transition:background .15s,color .15s,border-color .15s}button:hover:not(:disabled){filter:brightness(1.15)}[hidden]{display:none!important}.rail{position:fixed;left:0;top:0;bottom:0;width:76px;border-right:1px solid var(--border);display:flex;align-items:center;flex-direction:column;background:#14191b;z-index:3;padding-top:23px;gap:15px}.brand-mark{display:grid;place-items:center;background:var(--green);color:#14261c;width:36px;height:36px;border-radius:10px}.brand-mark svg{width:23px;height:23px;stroke-width:2}.rail-line{width:26px;height:1px;background:var(--border);margin:18px 0 8px}.rail-button{width:43px;height:43px;display:grid;place-items:center;border:1px solid transparent;border-radius:9px;background:none;color:var(--muted)}.rail-button.active{background:var(--green-dim);color:var(--green);border-color:#365342}.rail-button svg{width:21px;height:21px}.type-icon{font-family:Georgia,serif;font-size:24px}.type-icon span{font-size:18px}.rail-bottom{margin-top:auto;margin-bottom:23px;display:flex;align-items:center;flex-direction:column;gap:20px}.version{color:#5c696d;font:14px var(--mono);letter-spacing:1px}.app-shell{margin-left:76px}.topbar{height:78px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;padding:0 38px}.wordmark{font-size:17px;font-weight:650;letter-spacing:1px}.wordmark span{font:14px var(--mono);color:var(--muted);margin-left:13px;letter-spacing:2px}.top-right{display:flex;align-items:center;gap:28px}.local-badge{font-size:14px;color:#93a39a;display:flex;align-items:center;gap:7px}.local-badge i,.green-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--green)}.quiet{border:none;background:none;padding:5px;color:#9aa7ac;display:inline-flex;align-items:center;gap:7px;font-size:14px}.quiet svg{width:15px;height:15px}main{max-width:1530px;margin:auto;padding:32px 38px 0}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.eyebrow{font:14px var(--mono);letter-spacing:2.5px;color:#9db0a5}h1{margin:12px 0 10px;font-size:29px;letter-spacing:1px;font-weight:600}h1>span{color:var(--green);margin-left:3px}.page-heading p{margin:0;color:var(--muted);font-size:14px;letter-spacing:.5px}.heading-pixels{display:grid;grid-template-columns:repeat(3,9px);gap:5px;margin:0 13px;transform:rotate(-10deg)}.heading-pixels i{width:9px;height:9px;background:#304c3b;border-radius:1px}.heading-pixels i:nth-child(3n){background:#7aa88a}.heading-pixels i:nth-child(4){background:#9ce9ae}.workspace{display:grid;grid-template-columns:326px minmax(0,1fr);gap:22px;align-items:start}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden}.source-tabs{display:grid;grid-template-columns:1fr 1fr;padding:7px;border-bottom:1px solid var(--border);gap:4px}.source-tabs button{height:43px;background:none;border:1px solid transparent;border-radius:7px;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:15px;font-size:14px}.source-tabs button.active{background:#29382f;color:#b4ebc1;border-color:#3a5041}.source-tabs button>span{font:19px Georgia}.source-tabs svg{width:17px;height:17px}.settings-body{padding:24px 22px 16px}.section-caption{font-size:14px;font-weight:550;display:flex;align-items:center;gap:9px;margin-bottom:21px}.section-caption>span{font:14px var(--mono);color:#718779;background:#26322c;border:1px solid #35413a;border-radius:4px;padding:3px 5px}.field-label{display:flex;align-items:center;justify-content:space-between;color:#afbabd;font-size:14px;margin:18px 0 9px}.field-label span{color:#69777e;font-size:14px}.field-label output{color:var(--green);font:14px var(--mono)}textarea,select,input[type=number]{border:1px solid #313b40;background:var(--input);color:#d7e1df;border-radius:6px;outline:none;transition:border-color .2s}textarea:focus,select:focus,input:focus{border-color:#769e7f}textarea{width:100%;height:86px;resize:vertical;min-height:70px;max-height:250px;padding:12px;line-height:1.7;font-size:14px}select{width:100%;height:35px;font-size:14px;padding:0 10px}input[type=number]{width:100%;min-width:0;height:35px;padding:0 10px;font-family:var(--mono)}.under-field{font-size:14px;color:#64747a;margin:7px 0 0;line-height:1.7;overflow-wrap:anywhere}.dimension-row{display:flex;gap:13px;align-items:center}.dimension-row>div{position:relative;flex:1;min-width:0}.dimension-row>div>span{position:absolute;left:11px;top:10px;font:14px var(--mono);color:#6c7c82}.dimension-row input{padding-left:32px}.dimension-row>b{color:#68777a;font-size:14px;font-weight:400}.presets{display:flex;gap:6px;margin-top:9px}.presets button{flex:1;padding:5px 0;background:none;color:#78878c;border:1px solid var(--border);border-radius:4px;font:14px var(--mono)}.presets button.active{border-color:#566d5c;color:var(--green);background:#243229}.divider{height:1px;background:var(--border);margin:23px 0}.text-link{border:0;background:none;color:#73847b;font-size:14px;padding:0}.scan-options{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.scan-options button{border:1px solid #313a3e;border-radius:6px;background:var(--input);color:#829196;font-size:14px;padding:10px 4px 7px;display:flex;flex-direction:column;align-items:center;gap:8px}.scan-options button.active{color:var(--green);border-color:#66816e;background:#233027}.scan-graphic{width:30px;height:26px;position:relative;background:repeating-linear-gradient(0deg,transparent 0 5px,#35423e 5px 6px),repeating-linear-gradient(90deg,transparent 0 5px,#35423e 5px 6px)}.scan-graphic:after{content:"";position:absolute;left:3px;top:2px;width:2px;height:21px;background:currentColor;box-shadow:6px 0 currentColor;opacity:.8}.scan-graphic.horizontal:after{width:25px;height:2px;box-shadow:0 6px currentColor}.scan-graphic.page:after{height:10px;box-shadow:6px 0 currentColor,12px 0 currentColor,18px 0 currentColor}.scan-graphic.block:after{width:10px;box-shadow:0 6px currentColor,0 12px currentColor,0 18px currentColor}.two-fields{display:grid;grid-template-columns:1fr 1fr;gap:13px}input[type=range]{width:100%;height:4px;accent-color:var(--green);cursor:pointer;margin:7px 0 10px}input[type=checkbox]{width:12px;height:12px;accent-color:var(--green);margin:0;cursor:pointer}.range-labels{display:flex;justify-content:space-between;color:#627077;font-size:14px}.generate-button{border:1px solid #a6e8b5;border-radius:6px;background:#a3e8b2;color:#193021;padding:12px 17px;display:flex;align-items:center;justify-content:center;gap:17px;font-size:14px;font-weight:650;width:100%;margin-top:25px}.generate-button svg{width:17px;height:17px}.auto-note{display:flex;align-items:center;justify-content:center;gap:5px;font-size:14px;color:#76877d;margin-top:11px}.auto-note i{width:4px;height:4px;border-radius:50%;background:#6da381}.result-column{display:flex;flex-direction:column;gap:16px;min-width:0}.panel-heading{height:58px;padding:0 21px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);gap:12px}.panel-heading h2{font-size:14px;font-weight:550;display:flex;align-items:center;gap:9px;margin:0;white-space:nowrap}.panel-heading h2>svg{color:#91a098;width:16px;height:16px}.live-tag{font:14px var(--mono);letter-spacing:1px;background:#24382c;color:#91c69f;border:1px solid #314c3b;border-radius:4px;padding:3px 5px;margin-left:3px}.preview-tools{display:flex;align-items:center;gap:17px}.check-line{display:flex;gap:7px;align-items:center;color:#96a39f;font-size:14px;white-space:nowrap}.preview-tools select{height:28px;width:88px;font-size:14px;background:none}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:27px;height:28px;border:none;background:none;color:#96a69c;font-size:23px}.icon-button svg{width:16px;height:16px}.screen-area{background:#0b1012;margin:19px 21px 0;border:1px solid #26352b;border-radius:7px;padding:13px 19px 11px;box-shadow:inset 0 0 50px #00000030}.screen-top,.screen-bottom{display:flex;justify-content:space-between;color:#557160;font:14px var(--mono);letter-spacing:1px;gap:12px}.screen-top>span:first-child{display:flex;align-items:center;gap:7px}.screen-top i{width:4px;height:4px;background:#81bb8f;border-radius:50%;box-shadow:0 0 6px #81bb8f}.screen-top>span:last-child{letter-spacing:0;color:#607169}.canvas-container{width:100%;max-width:900px;margin:18px auto 15px;aspect-ratio:2;display:flex;align-items:center;justify-content:center}canvas{width:100%;height:100%;image-rendering:pixelated;cursor:crosshair;display:block;touch-action:none}.screen-bottom{font-size:14px;letter-spacing:0;color:#4c6155}.screen-bottom>span:last-child{font-size:14px;letter-spacing:1.3px}.preview-bottom{display:flex;align-items:center;justify-content:space-between;margin:10px 21px 12px;gap:8px}.preview-bottom>div:last-child{display:flex;gap:10px}.preview-bottom .quiet{font-size:14px}.preview-hint{display:flex;align-items:center;gap:6px;font-size:14px;color:#74857c}.preview-hint .green-dot{width:4px;height:4px;background:#769a81}.glyph-strip{border-top:1px solid var(--border);padding:12px 21px;display:flex;gap:15px;align-items:center;color:#788980;font-size:14px}.glyph-strip>span{flex-shrink:0}#glyphs{display:flex;gap:6px;overflow:auto;flex:1;padding:2px}#glyphs button{min-width:30px;height:28px;padding:0 8px;color:#92a198;border:1px solid #35423b;background:#1c2520;border-radius:4px;font-size:14px}#glyphs button.active{color:#bbefc7;border-color:#779b7d;background:#2b3d2e}#glyph-total{font-size:14px;letter-spacing:.7px;white-space:nowrap}.mono{font-family:var(--mono)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);background:#171d1e;border-radius:9px;padding:15px 8px}.stats-row>div{display:flex;align-items:center;gap:14px;padding:0 18px;border-right:1px solid var(--border)}.stats-row>div:last-child{border:0}.stat-symbol{font-size:24px;color:#597467;font-family:var(--mono)}.stats-row>div>div{display:flex;flex-direction:column;gap:6px}.stats-row>div>div>span{font-size:14px;color:#788a80}.stats-row strong{font:17px var(--mono);color:#d4e2d7;white-space:nowrap}.stats-row small{font:14px var(--mono);color:#708278}.code-panel .panel-heading{height:54px}.code-actions{display:flex;align-items:center;gap:14px}.code-actions select{width:129px;height:28px;background:none;font-size:14px}.code-actions .quiet{font-size:14px}.download-button{display:flex;align-items:center;gap:6px;border:1px solid #465d4d;border-radius:5px;background:#29392d;color:#bad6bf;font-size:14px;padding:6px 9px}.download-button svg{width:13px;height:13px}.code-file{padding:12px 20px;display:flex;align-items:center;justify-content:space-between;font:14px var(--mono);background:#141a1c;color:#768c7f;border-bottom:1px solid #252d2f}.code-file>span:first-child{display:flex;align-items:center;gap:7px}.code-file i{width:5px;height:5px;background:#b7c7ac;border-radius:1px}.muted{color:#3e5048;margin:0 7px}.code-scroll{display:flex;position:relative;height:210px;overflow:auto;background:#121719;padding:15px 0 18px;scrollbar-color:#34463a transparent;scrollbar-width:thin}#line-numbers{font:14px/1.9 var(--mono);color:#415348;text-align:right;min-width:45px;padding-right:15px;user-select:none}pre{margin:0;font:14px/1.9 var(--mono);color:#b9d4c2;padding-right:20px;tab-size:2}code{font:inherit}.token-comment{color:#63816d}.token-type{color:#b6c5e5}.token-number{color:#b0d4a3}.code-footer{display:flex;justify-content:space-between;align-items:center;padding:11px 20px;border-top:1px solid #27332b;font-size:14px;color:#6f8b76}.code-footer>span:first-child{display:flex;align-items:center;gap:6px}.code-footer .green-dot{width:4px;height:4px;background:#6c9a78}footer{display:flex;justify-content:space-between;color:#4f6258;font-size:14px;padding:27px 0 22px}footer>span:last-child{font:14px var(--mono);letter-spacing:1.1px}footer i{font-style:normal;color:#789a81;margin:0 10px}.upload-zone{border:1px dashed #4c6254;border-radius:7px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:142px;background:#17241d;cursor:pointer;color:#9fb9a6}.upload-zone strong{font-size:14px;font-weight:400}.upload-zone span{font-size:14px;color:#728679}.upload-zone input{position:absolute;width:1px;height:1px;opacity:0}.upload-zone:focus-within,.upload-zone.dragover{outline:2px solid var(--green)}#image-settings>.check-line{margin-top:12px}#empty-code{padding:22px;color:var(--muted);font-size:14px}.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:#314b38;color:#d4f1dc;border:1px solid #61856a;padding:12px 22px;border-radius:8px;box-shadow:0 8px 30px #0005;z-index:10;font-size:14px;transition:.2s}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog{width:min(520px,calc(100vw - 32px));max-height:85vh;overflow:auto;border:1px solid #405247;border-radius:14px;padding:28px;background:#1a2220;color:#cddbd1;box-shadow:0 25px 100px #0008}dialog::backdrop{background:#050b09b8;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center}dialog h2{font-size:23px;letter-spacing:1px}dialog h3{font-size:14px;margin-top:25px}dialog p,dialog dd{font-size:14px;line-height:1.9;color:#97ad9e}dialog dt{font-size:14px;color:#c2dfc8;margin-top:12px}dialog dd{margin:5px 0 0}.help-note{font-size:14px;line-height:1.9;background:#25322a;border-radius:6px;padding:13px;color:#9eb7a5}
@media(min-width:1500px){.workspace{grid-template-columns:350px minmax(0,1fr)}.settings-body{padding:26px}.canvas-container{max-height:360px}.screen-area{padding-left:35px;padding-right:35px}.code-scroll{height:225px}}
@media(max-width:1150px){main{padding:25px 24px 0}.topbar{padding:0 24px}.workspace{grid-template-columns:295px minmax(0,1fr);gap:16px}.settings-body{padding:20px 17px}.panel-heading{padding:0 14px}.screen-area{margin:14px 14px 0;padding:12px}.preview-tools{gap:8px}.code-actions{gap:7px}.code-actions select{width:107px}.stats-row>div{padding:0 10px;gap:10px}.stat-symbol{display:none}.stats-row strong{font-size:16px}.glyph-strip{padding:12px 14px;gap:9px}.preview-bottom{margin:10px 14px}.preview-hint{font-size:14px}.code-panel h2 svg{display:none}#glyph-total{display:none}}
@media(max-width:900px){.rail{width:60px}.app-shell{margin-left:60px}.workspace{grid-template-columns:270px minmax(0,1fr);gap:12px}main{padding:24px 18px 0}h1{font-size:24px}.local-badge{display:none}.wordmark span{font-size:14px;margin-left:8px}.preview-tools .check-line{display:none}.panel-heading{height:52px}.code-actions select{width:102px}.code-actions .quiet{font-size:0;gap:0}.download-button{font-size:0;gap:0}.download-button svg{width:15px;height:15px}.preview-hint .green-dot{display:none}.preview-bottom{align-items:start}.preview-hint{line-height:1.7;max-width:170px}.screen-bottom>span:last-child{display:none}.screen-area{padding:10px}.canvas-container{margin-top:15px;margin-bottom:15px}.stats-row strong{font-size:14px}.stats-row small{font-size:14px}.code-scroll{height:230px}.code-footer{padding:10px;font-size:14px}}
@media(max-width:740px){.rail{display:none}.app-shell{margin-left:0}.topbar{height:63px;padding:0 20px}.top-right>.quiet{font-size:0;gap:0}.wordmark{font-size:16px}.wordmark span{font-size:14px}main{padding:27px 16px 0}.page-heading{margin-bottom:24px}.eyebrow{font-size:14px;letter-spacing:2px}h1{font-size:24px;line-height:1.4}.page-heading p{font-size:14px;line-height:1.9}.heading-pixels{display:none}.workspace{grid-template-columns:1fr;gap:18px}.settings-body{padding:21px}.section-caption{margin-bottom:15px}.settings-body .two-fields{gap:14px}.scan-options{gap:12px}.scan-graphic{height:26px}.scan-options button{padding:12px}.source-tabs button{height:42px}.result-column{gap:14px}.panel-heading{padding:0 16px}.preview-tools .check-line{display:flex}.screen-area{margin:15px 15px 0;padding:12px}.canvas-container{margin:15px auto}.preview-bottom{align-items:center}.preview-hint{max-width:none;font-size:14px}.stats-row{padding:15px 4px}.stats-row>div{padding:0 16px}.stats-row strong{font-size:16px}.code-actions{gap:9px}.code-actions .quiet{font-size:14px;gap:5px}.download-button{font-size:14px;gap:5px}.code-scroll{height:240px}footer{font-size:14px;gap:20px;line-height:1.7}footer>span:last-child{font-size:14px;letter-spacing:.5px}footer i{margin:0 4px}.settings-panel{overflow:visible}.source-tabs{border-radius:12px 12px 0 0}.generate-button{margin-top:22px}}
.driver-body{padding:18px 21px}.driver-body>p:first-child{margin:0 0 14px;color:#cadbce;font-size:14px}.driver-license{font:14px var(--mono);color:#799382}.driver-tags{display:flex;flex-wrap:wrap;gap:7px}.driver-tags span{font-size:14px;border:1px solid #36473c;border-radius:4px;padding:4px 7px;color:#93b09c;background:#1d2a22}.driver-description{font-size:14px;line-height:1.9;color:#849b8c;margin:13px 0}.driver-compat{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;background:#131e17;border:1px solid #2c4033;padding:12px;border-radius:6px;font-size:14px;color:#a1c9ac}.driver-compat.needs-change{color:#d0b88e;border-color:#5b4c35}.driver-compat .text-link{color:#aacdb2}.driver-actions{display:flex;gap:17px;align-items:center;margin:17px 0 12px}.driver-actions a,.generate-button{text-decoration:none}.driver-actions .download-button{font-size:14px;padding:9px 12px}.driver-note{font-size:14px;line-height:1.7;color:#6e8375;margin:0}#driver-dialog code{font-family:var(--mono);font-size:14px;overflow-wrap:anywhere}@media(max-width:740px){.driver-body{padding:17px}.driver-compat{align-items:flex-start;flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
