:root{--bg:#07070b;--surface:#ffffff09;--surface-hi:#ffffff0f;--line:#ffffff14;--line-hi:#ffffff29;--text:#f4f4f7;--muted:#9a9aab;--dim:#66667a;--violet:#a78bfa;--indigo:#6366f1;--green:#34d399;--rose:#fb7185;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Microsoft YaHei", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0}[hidden]{display:none!important}body{background:radial-gradient(900px 500px at 80% -10%, #6366f129, transparent 60%), var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.6;overflow-x:hidden}a{color:inherit}.wrap{max-width:1120px;margin:0 auto;padding:0 16px}@media (width>=720px){.wrap{padding:0 24px}}.top{border-bottom:1px solid var(--line)}.top .wrap{justify-content:space-between;align-items:center;gap:12px;height:60px;display:flex}.brand{white-space:nowrap;align-items:center;gap:9px;font-weight:600;text-decoration:none;display:flex}.brand svg{width:24px;height:24px}.langs{flex-wrap:wrap;justify-content:flex-end;gap:2px;font-size:13px;display:flex}.langs a{color:var(--muted);border-radius:999px;padding:5px 10px;text-decoration:none}.langs a:hover,.langs a[aria-current]{color:var(--text);background:var(--surface-hi)}@media (width<=520px){.brand span{display:none}.langs a{padding:5px 8px}}.hero{padding-top:40px;padding-bottom:24px}.crumbs{color:var(--dim);margin-bottom:14px;font-size:13px}.crumbs a{color:var(--muted);text-decoration:none}.hero h1{letter-spacing:-.03em;max-width:820px;font-size:clamp(28px,4.6vw,46px);font-weight:650;line-height:1.12}.hero p{color:var(--muted);max-width:680px;margin-top:14px;font-size:clamp(15px,1.8vw,17px)}.badge{color:#bbf7d0;background:#34d39914;border:1px solid #34d3994d;border-radius:999px;align-items:center;gap:8px;margin-top:18px;padding:6px 12px;font-size:13px;display:inline-flex}.badge svg{width:15px;height:15px}.tool{padding-bottom:48px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:18px;min-width:0;padding:16px}@media (width>=720px){.panel{padding:22px}}.panel+.panel{margin-top:16px}.drop{text-align:center;border:1.5px dashed var(--line-hi);cursor:pointer;border-radius:14px;place-items:center;gap:6px;min-height:200px;padding:24px;transition:border-color .2s,background .2s;display:grid;position:relative}.drop:hover,.drop.over{border-color:var(--violet);background:#a78bfa0f}.drop svg{width:38px;height:38px;color:var(--violet)}.drop strong{font-size:16px;font-weight:600}.drop span{color:var(--muted);font-size:13px}.drop.compact{grid-auto-flow:column;gap:10px;min-height:0;padding:14px}.drop.compact svg{width:22px;height:22px}.vh{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}.filelist{gap:8px;margin-top:14px;list-style:none;display:grid}.filelist li{border:1px solid var(--line);background:#0003;border-radius:12px;grid-template-columns:56px minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px;display:grid}.filelist .thumb{background:#fff;border-radius:6px;place-items:center;width:56px;height:72px;display:grid;overflow:hidden}.filelist .thumb canvas,.filelist .thumb img{max-width:100%;max-height:100%;display:block}.filelist .name{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.filelist .meta{color:var(--muted);font-size:12px}.filelist .acts{gap:4px;display:flex}.iconbtn{font:inherit;cursor:pointer;width:34px;height:34px;color:var(--text);background:var(--surface-hi);border:1px solid var(--line);border-radius:9px;place-items:center;display:grid}.iconbtn:hover{border-color:var(--line-hi)}.iconbtn:disabled{opacity:.3;cursor:default}.iconbtn svg{width:16px;height:16px}.iconbtn.danger{color:#fecdd3}.thumbs{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px;margin-top:14px;display:grid}.thumbs .pg{cursor:pointer;font:inherit;color:var(--muted);background:#0003;border:2px solid #0000;border-radius:12px;justify-items:center;gap:6px;padding:8px;font-size:12px;display:grid;position:relative}.thumbs .pg canvas{max-width:100%;height:auto;box-shadow:0 0 0 1px var(--line);background:#fff;border-radius:3px;display:block}.thumbs .pg[aria-pressed=true]{border-color:var(--violet);color:var(--text);background:#a78bfa1f}.thumbs .pg .tick{background:var(--violet);color:#0a0a10;border-radius:50%;place-items:center;width:22px;height:22px;font-size:13px;font-weight:700;display:none;position:absolute;top:12px;right:12px}.thumbs .pg[aria-pressed=true] .tick{display:grid}.pgrid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px;display:grid}.tile{color:var(--muted);font:inherit;background:#0003;border:2px solid #0000;border-radius:12px;justify-items:center;gap:6px;padding:10px 8px;font-size:12px;display:grid;position:relative}button.tile{cursor:pointer}button.tile:hover{border-color:var(--line-hi)}.tile .pimg{place-items:center;width:128px;height:128px;display:grid}.tile .pimg canvas,.tile .pimg .ph{box-shadow:0 0 0 1px var(--line);border-radius:3px;transition:transform .2s,opacity .2s}.tile .badge{background:var(--violet);color:#0a0a10;border-radius:999px;padding:2px 7px;font-size:11px;font-weight:600;position:absolute;top:8px;left:8px}.tile.del{background:#fb718514;border-color:#fb7185b3}.tile.del .pimg>*{opacity:.3}.tile.del:after{content:"✕";color:var(--rose);pointer-events:none;font-size:44px;position:absolute;top:46px;left:50%;transform:translate(-50%)}.tile .tacts{gap:4px;display:flex}.tile .tacts .iconbtn{width:30px;height:30px}.tile[draggable=true]{cursor:grab}.tile.dragging{opacity:.35}.tile.drop-before{box-shadow:-5px 0 0 -1px var(--violet)}.tile.drop-after{box-shadow:5px 0 0 -1px var(--violet)}.preview{justify-items:center;gap:6px;margin-top:16px;display:grid}.preview canvas{max-width:100%;height:auto;box-shadow:0 0 0 1px var(--line);background:#fff;border-radius:3px}.preview span{color:var(--dim);font-size:12px}.rates-note{border:1px solid var(--line);color:var(--muted);background:#60a5fa0d;border-radius:12px;gap:4px;margin-top:18px;padding:12px 14px;font-size:12px;line-height:1.5;display:grid}.rates-note strong{color:var(--text);font-size:13px}.rates-note a{color:#93c5fd}.rates-note .est{color:var(--dim)}.calc{gap:20px;display:grid}@media (width>=820px){.calc{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.calc .result{position:sticky;top:16px}}.calc .opts{border-top:0;margin-top:0;padding-top:0;grid-template-columns:minmax(0,1fr)!important}.calc h3{margin:6px 0 2px;font-size:15px}.calc input[type=number],.calc input[type=text]{font-variant-numeric:tabular-nums}.result{border:1px solid var(--line-hi);background:#00000040;border-radius:14px;padding:16px}.result h3{margin:0 0 10px}.ctable{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:14px}.ctable td{border-bottom:1px solid var(--line);padding:7px 0}.ctable td:last-child{text-align:right;white-space:nowrap;padding-left:12px}.ctable tr.minus td:last-child{color:#fda4af}.ctable tr.total td{border-bottom:0;padding-top:10px;font-size:16px;font-weight:700}.ctable tr.big td{color:#6ee7b7;font-size:22px}.ctable tr.sub td{color:var(--muted);padding-top:0;font-size:12px}.ctable tr[hidden]{display:none}.relief-row{color:var(--text);grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:8px;font-size:13px;display:grid}.relief-row small{color:var(--dim);font-size:11px;display:block}.checker{background:repeating-conic-gradient(#e5e7eb 0 25%, #fff 0 50%) 50% / 16px 16px!important}.swatches{align-items:center;gap:8px;min-height:40px;display:flex}.sw{cursor:pointer;display:inline-grid;position:relative}.sw input{opacity:0;width:1px;height:1px;position:absolute}.sw span{background:var(--c);border:2px solid #ffffff40;border-radius:50%;width:28px;height:28px}.sw input:checked+span{box-shadow:0 0 0 2px var(--violet);border-color:#fff}input[type=range]{width:100%;accent-color:var(--violet)}.textout{resize:vertical;width:100%;min-height:320px;color:var(--text);border:1px solid var(--line-hi);white-space:pre-wrap;background:#0d0d14;border-radius:12px;margin-top:12px;padding:12px;font:13px/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,Microsoft YaHei,monospace;display:block}input[type=number]{font:inherit;color:var(--text);border:1px solid var(--line-hi);background:#12121a;border-radius:10px;width:100%;padding:9px 10px;font-size:14px}.checkline{color:var(--text);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.checkline input{accent-color:var(--violet);width:16px;height:16px}.edview{justify-items:center;gap:18px;margin-top:16px;display:grid}.edview .pv{width:100%;max-width:820px;box-shadow:0 0 0 1px var(--line);background:#fff;border-radius:3px;position:relative}.edview .pagebg{border-radius:3px;width:100%;height:100%;position:absolute;inset:0}.edview .inklayer{touch-action:none;cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.edview .textedit{resize:both;z-index:2;background:#ffffffd9;border:1.5px dashed #7c3aed;border-radius:3px;outline:none;min-width:140px;min-height:1.6em;margin:-2px 0 0 -2px;padding:0 2px;font-family:Inter,Microsoft YaHei,PingFang SC,system-ui,sans-serif;line-height:1.25;position:absolute}.edbar{z-index:20;-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--line);background:#0d0d14f2;gap:8px;margin:16px -16px 0;padding:8px 16px 10px;display:grid;position:sticky;top:0}@media (width>=720px){.edbar{margin:16px -22px 0;padding:8px 22px 10px}}.edbar .bar{margin-top:0}.toolbtn[aria-pressed=true]{border-color:var(--violet);background:#a78bfa33}.edbar input[type=range]{width:110px}.opts{border-top:1px solid var(--line);gap:12px;margin-top:18px;padding-top:16px;display:grid}@media (width>=640px){.opts{grid-template-columns:repeat(3,minmax(0,1fr))}}.opts .wide{grid-column:1/-1}.field{color:var(--muted);gap:5px;min-width:0;font-size:13px;display:grid}select,input[type=text]{font:inherit;color:var(--text);border:1px solid var(--line-hi);background:#12121a;border-radius:10px;width:100%;padding:9px 10px;font-size:14px}select:focus,input[type=text]:focus{outline-offset:1px;outline:2px solid #a78bfa80}.radios{gap:8px;display:grid}.radios label{border:1px solid var(--line);cursor:pointer;color:var(--text);border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:14px;display:flex}.radios label:has(input:checked){border-color:var(--violet);background:#a78bfa14}.radios input{accent-color:var(--violet);margin-top:4px}.note{color:var(--dim);font-size:12px;line-height:1.5}.bar{flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px;display:flex}.chip{font:inherit;color:var(--text);background:var(--surface-hi);border:1px solid var(--line);cursor:pointer;border-radius:999px;padding:6px 12px;font-size:13px}.chip:hover{border-color:var(--line-hi)}.chip.ok{background:var(--text);color:#0a0a10;border-color:var(--text);font-weight:600}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px;display:flex}.btn{font:inherit;cursor:pointer;border:1px solid var(--line-hi);background:var(--surface-hi);color:var(--text);border-radius:12px;padding:12px 20px;font-size:15px;font-weight:600;text-decoration:none}.btn.primary{background:var(--text);color:#0a0a10;border-color:var(--text)}.btn:disabled{opacity:.45;cursor:not-allowed}.status{min-height:20px;color:var(--muted);margin-top:12px;font-size:14px}.status.err{color:var(--rose)}.status.ok{color:#6ee7b7}.progress{background:var(--surface-hi);border-radius:3px;height:6px;margin-top:12px;overflow:hidden}.progress i{background:linear-gradient(90deg, var(--violet), var(--indigo));width:0;height:100%;transition:width .2s;display:block}.private{color:#a7f3d0;align-items:flex-start;gap:6px;margin-top:12px;font-size:12px;display:flex}.private svg{flex:none;width:14px;height:14px;margin-top:2px}.content{border-top:1px solid var(--line);gap:44px;padding-top:48px;padding-bottom:24px;display:grid}.content>div{max-width:780px}.content h2{letter-spacing:-.02em;margin-bottom:14px;font-size:clamp(21px,2.6vw,26px)}.content p,.content li{color:#c9c9d6}.content ol{gap:8px;padding-left:22px;display:grid}details{border-bottom:1px solid var(--line);padding:14px 0}details summary{cursor:pointer;justify-content:space-between;gap:12px;font-weight:600;list-style:none;display:flex}details summary:after{content:"+";color:var(--muted);font-weight:400}details[open] summary:after{content:"−"}details p{margin-top:10px}.content>.related{max-width:none}.rel{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.rel a{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-columns:36px 1fr;align-items:start;gap:12px;padding:14px;text-decoration:none;display:grid}.rel a:hover{border-color:var(--line-hi)}.rel .ic{background:var(--surface-hi);border-radius:10px;place-items:center;width:36px;height:36px;display:grid}.rel .ic svg{width:20px;height:20px}.rel strong{font-size:15px;display:block}.rel span{color:var(--muted);font-size:13px}footer{border-top:1px solid var(--line);color:var(--dim);margin-top:32px;padding:28px 0 40px;font-size:13px}footer .wrap{flex-wrap:wrap;justify-content:space-between;gap:10px 24px;display:flex}footer a{color:var(--muted);text-decoration:none}footer nav{flex-wrap:wrap;gap:16px;display:flex}
