@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap";.account-auth-page{grid-template-columns:minmax(240px,1fr) minmax(360px,500px);align-items:center;gap:7vw;max-width:1160px;min-height:calc(100vh - 74px);margin:0 auto;padding:54px 28px;display:grid}.auth-decoration{color:#213c34;flex-direction:column;justify-content:center;min-height:410px;display:flex;position:relative}.auth-mark{letter-spacing:.12em;color:#fff;background:#24493e;border-radius:14px;place-items:center;width:48px;height:48px;font:700 17px/1 Georgia,serif;display:grid}.auth-calligraphy{color:#e9eee8;z-index:-1;font-family:Noto Serif CJK SC,Songti SC,serif;font-size:clamp(160px,24vw,300px);line-height:1;position:absolute;top:20px;right:0}.auth-decoration p{margin:24px 0 8px;font-family:Noto Serif CJK SC,Songti SC,serif;font-size:28px}.auth-decoration small{color:#77857d;letter-spacing:.08em}.auth-card{background:#fff;border:1px solid #e8e9e2;border-radius:20px;padding:36px;box-shadow:0 20px 50px #25382d0c}.auth-card h1,.account-heading h1{letter-spacing:-.04em;margin:9px 0;font-size:30px}.auth-lede,.account-heading p{color:#78827b;margin:0 0 25px;line-height:1.7}.auth-card .field-label{margin:16px 0;display:block}.auth-card .field-label input{margin-top:8px}.auth-links{justify-content:space-between;margin-top:18px;display:flex}.auth-links button,.text-button{color:#63756b;cursor:pointer;background:0 0;border:0;padding:8px}.auth-links button:hover,.text-button:hover{color:#24493e}.auth-security-note{text-align:center;color:#9aa29c;margin-top:27px;display:block}.account-warning,.account-error,.account-success{border-radius:10px;margin:14px 0;padding:13px 15px;font-size:13px;line-height:1.6}.account-warning{color:#81652c;background:#fff6e4}.account-error{color:#aa5949;background:#fff0ec}.account-success{color:#39704b;background:#edf7ef}.account-page{max-width:1260px;margin:0 auto;padding:42px 32px 90px}.account-heading{justify-content:space-between;align-items:center;margin-bottom:27px;display:flex}.account-heading h1{font-size:32px}.account-avatar{color:#fff;background:#315447;border-radius:50%;place-items:center;width:54px;height:54px;font-size:22px;display:grid}.account-overview-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.account-overview{flex-direction:column;gap:8px;padding:24px;display:flex}.account-overview small,.account-overview span{color:#818b84}.account-overview strong{overflow-wrap:anywhere;font-size:21px}.account-action-grid{grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:16px;margin-top:24px;display:grid}.account-action{text-align:left;cursor:pointer;flex-direction:column;gap:9px;padding:23px;transition:transform .18s,border-color .18s;display:flex}.account-action:hover{border-color:#aab9ad;transform:translateY(-2px)}.account-action>span{color:#5f8872;font-size:23px}.account-action strong{font-size:16px}.account-action small{color:#87918a}.account-empty{text-align:center;color:#77827a;padding:50px 20px}.account-empty>span{color:#9bad9f;font-size:34px}.account-empty h3{color:#33483c}.account-empty p{margin-bottom:0}.order-list,.admin-order-list,.admin-resource-list,.member-list{gap:13px;display:grid}.order-card,.admin-order{padding:22px}.order-card-main{justify-content:space-between;align-items:flex-start;gap:20px;display:flex}.order-card-main h3{margin:10px 0 5px;font-size:17px}.order-card-main small{color:#89928c}.order-card-main>strong{white-space:nowrap;font-size:22px}.order-status{color:#73776e;background:#f1f1ec;border-radius:20px;padding:5px 10px;font-size:12px;display:inline-flex}.order-status.pending{color:#966c17;background:#fff3d8}.order-status.approved{color:#42794d;background:#eaf5ec}.order-status.rejected{color:#a55346;background:#fff0ed}.order-status.cancelled{color:#777;background:#f0f1f1}.order-card-actions{align-items:center;gap:12px;margin-top:16px;display:flex}.order-card-actions .primary-btn,.order-card-actions .danger-btn{min-height:40px}.payment-layout{grid-template-columns:minmax(280px,.9fr) minmax(360px,1.1fr);gap:18px;display:grid}.payment-summary,.payment-qr-panel{padding:27px}.payment-summary h2{margin:15px 0 5px}.payment-amount{color:#254c3e;margin:18px 0;font-size:34px;font-weight:700}.payment-summary dl{margin:22px 0 0}.payment-summary dl div{border-top:1px solid #edf0eb;grid-template-columns:100px 1fr;gap:10px;padding:12px 0;display:grid}.payment-summary dt{color:#7c867e}.payment-summary dd{overflow-wrap:anywhere;margin:0}.payment-qr-panel h3{margin:0 0 15px}.payment-qr{object-fit:contain;border:1px solid #e8ebe5;border-radius:12px;width:220px;height:220px;margin:0 auto 14px;padding:8px;display:block}.payment-qr-panel>p{color:#6e7a71;font-size:13px;line-height:1.6}.payment-qr-panel .field-label{margin:15px 0;display:block}.payment-qr-panel .field-label input{margin-top:7px}.payment-qr-panel .file-input{height:auto;padding:10px}.payment-qr-panel .field-label small{color:#8a938c;margin-top:5px;display:block}.back-to-orders{margin-top:18px}.member-active{margin-bottom:22px}.account-section-title{margin:30px 0 14px;font-size:20px}.plan-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;display:grid}.plan-card{padding:24px}.plan-symbol{color:#639276;font-size:24px}.plan-card h3{margin:13px 0}.plan-price{color:#2a4e41;font-size:30px;font-weight:700}.plan-card p{color:#727d75}.plan-card small{color:#879088;min-height:40px;margin-bottom:15px;line-height:1.6;display:block}.resource-purchase-card{align-items:center;gap:20px;margin:18px 0;padding:21px 24px;display:flex}.resource-purchase-card>div{flex:1}.resource-purchase-card h2{margin:7px 0;font-size:19px}.resource-purchase-card p{color:#818b83;margin:0;font-size:13px}.resource-purchase-card>strong{white-space:nowrap;font-size:20px}.admin-chip{color:#446b52;background:#eef4ef;border-radius:20px;padding:8px 12px;font-size:12px}.admin-tabs{border-bottom:1px solid #e7eae5;gap:7px;margin-bottom:20px;display:flex;overflow-x:auto}.admin-tabs button{color:#7b867e;white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:13px 16px}.admin-tabs button.active{color:#2c5143;border-color:#648e75;font-weight:600}.admin-content{gap:15px;display:grid}.admin-filter{grid-template-columns:minmax(200px,1fr) 180px 160px auto;gap:9px;display:grid}.resource-price-row{grid-template-columns:minmax(220px,1fr) 130px minmax(125px,180px) auto;align-items:center;gap:12px;padding:15px;display:grid}.resource-price-row>div{gap:6px;min-width:0;display:grid}.resource-price-row>div strong{text-overflow:ellipsis;overflow:hidden}.resource-price-row>div small{color:#89918b;overflow-wrap:anywhere}.resource-price-row label{gap:4px;display:grid}.resource-price-row label span{color:#89918b;font-size:11px}.cents-input{min-width:0}.admin-form{padding:22px}.admin-form h3{margin:0 0 17px}.admin-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-bottom:16px;display:grid}.admin-form-grid label{color:#667269;gap:6px;font-size:13px;display:grid}.admin-form-grid .wide-field{grid-column:1/-1}.admin-form-grid .admin-checkbox{align-items:center;gap:8px;display:flex}.danger-btn{color:#a54d3f;cursor:pointer;background:#fff8f5;border:1px solid #e4b4a9;border-radius:9px;padding:9px 14px}.admin-order-details{color:#7e8981;flex-wrap:wrap;gap:12px 20px;margin:14px 0;font-size:12px;display:flex}.admin-order-details a{color:#4b7d5b}.channel-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:13px;display:grid}.channel-card{flex-wrap:wrap;align-items:center;gap:10px;padding:17px;display:flex}.channel-card>img{object-fit:contain;border:1px solid #e7eae5;border-radius:8px;width:76px;height:76px}.channel-card>div{flex:1;gap:5px;display:grid}.channel-card>div small{color:#87928a}.channel-upload{cursor:pointer;position:relative;overflow:hidden}.channel-upload input{opacity:0;cursor:pointer;position:absolute;top:0;bottom:0;left:0;right:0}.member-row{grid-template-columns:1.4fr 1fr 1fr auto;align-items:center;gap:12px;padding:14px 18px;display:grid}.member-row span{color:#77827a;font-size:12px}.member-row .member-valid{color:#417b4f}.member-row .member-expired{color:#a45a4d}.settings-card{grid-template-columns:1fr auto;align-items:center;gap:8px 18px;padding:20px;display:grid}.settings-card h3{margin:0}.settings-card p{color:#77827d;grid-column:1;margin:2px 0;font-size:13px;line-height:1.6}.settings-card .config-state{white-space:nowrap;color:#778;background:#f0f0eb;border-radius:20px;grid-area:1/2/3;padding:6px 10px}.settings-card .config-state.ready{color:#42774d;background:#edf6ee}.settings-card .config-state.missing{color:#936c21;background:#fff3e1}.settings-card button{grid-column:1;justify-self:start}.admin-page>.account-warning{margin-top:0}.muted{color:#849087}@media (max-width:850px){.account-auth-page{grid-template-columns:1fr;gap:15px;padding-top:25px}.auth-decoration{min-height:120px}.auth-calligraphy{font-size:100px;top:-15px;right:10px}.auth-decoration p{margin:15px 0 4px;font-size:21px}.auth-decoration small{font-size:11px}.account-overview-grid,.payment-layout{grid-template-columns:1fr}.admin-filter,.resource-price-row{grid-template-columns:1fr 1fr}.resource-price-row>div{grid-column:1/-1}.member-row{grid-template-columns:1fr 1fr}.settings-card{grid-template-columns:1fr}.settings-card .config-state{grid-area:auto/1;justify-self:start}.resource-purchase-card{flex-wrap:wrap;align-items:flex-start}.resource-purchase-card>div{flex-basis:100%}}@media (max-width:520px){.account-page{padding:28px 16px 60px}.auth-card{padding:24px 20px}.auth-card h1{font-size:26px}.account-heading{align-items:flex-start}.account-heading h1{font-size:27px}.admin-filter,.admin-form-grid{grid-template-columns:1fr}.admin-form-grid .wide-field{grid-column:auto}.resource-price-row{grid-template-columns:1fr}.resource-price-row>div{grid-column:auto}.order-card-main{display:block}.order-card-main>strong{margin-top:12px;display:block}.member-row{grid-template-columns:1fr}.resource-purchase-card>strong{width:100%}}.app-loading{color:#66776c;background:#f3f6f2;justify-content:center;align-items:center;gap:13px;min-height:100vh;display:flex}.download-btn,.download-big{cursor:pointer;font:600 12px Manrope,sans-serif}.download-big{border:0}.admin-filter{grid-template-columns:minmax(190px,1fr) 140px 130px 150px 150px auto}@media (max-width:850px){.admin-filter{grid-template-columns:1fr 1fr}}.channel-select-row{align-items:end;gap:16px;margin:15px 0;display:flex}.channel-select-row .field-label{gap:6px;min-width:260px;display:grid}.order-audit{color:#78847b;margin:8px 0;font-size:12px}.order-audit summary{cursor:pointer;font-weight:600}.order-audit p{margin:8px 0 0 13px;line-height:1.5}.payment-audit{border-top:1px solid #edf0eb;margin-top:20px;padding-top:14px}.payment-audit h4{margin:0 0 10px;font-size:13px}.payment-audit p{color:#738077;font-size:11px}.download-btn{font-size:12px}.proof-policy{grid-template-columns:1fr auto}.proof-setting{color:#55675d;grid-column:1/-1;align-items:center;gap:9px;font-size:13px;display:flex}.proof-setting input{accent-color:#315f4a;width:16px;height:16px}@media (max-width:520px){.channel-select-row{display:block}.channel-select-row .field-label{min-width:0}}.payment-membership-action{text-align:right;max-width:1260px;margin:-70px auto 48px;padding:0 32px}.global-price-summary{color:#6f7e73;align-self:center;line-height:1.6}.global-price-summary strong{color:#254c3e;margin:0 4px;font-size:18px}@media (max-width:520px){.payment-membership-action{margin:-58px auto 35px;padding:0 16px}.payment-membership-action .secondary-btn{width:100%}}.payment-qr{object-fit:contain;image-rendering:auto;background:#fff;width:min(100%,440px);height:auto;max-height:70vh;padding:0}.channel-card>img{object-fit:contain;background:#fff;width:136px;height:160px}.admin-user-filter{grid-template-columns:minmax(200px,1fr) auto auto;align-items:center}.admin-user-count{color:#7b867e;margin:0;font-size:13px}.admin-user-list{gap:13px;display:grid}.admin-user-card{padding:19px 21px}.admin-user-head{justify-content:space-between;align-items:flex-start;gap:18px;display:flex}.admin-user-head>div{gap:6px;min-width:0;display:grid}.admin-user-head>div>strong{overflow-wrap:anywhere;font-size:16px}.admin-user-head small,.admin-user-metrics small,.admin-user-metrics span{color:#7d8981;font-size:12px}.admin-user-metrics{grid-template-columns:1fr 1.5fr;gap:14px;margin:17px 0;display:grid}.admin-user-metrics>div{border:1px solid #edf0eb;border-radius:10px;gap:6px;min-width:0;padding:12px;display:grid}.admin-user-metrics strong{overflow-wrap:anywhere;font-size:15px}.admin-user-metrics>div:first-child>strong{color:#2a5142;font-size:20px}.admin-user-metrics span{line-height:1.5}.admin-user-detail-toggle{min-height:38px}.admin-user-details{border-top:1px solid #e9ede8;gap:18px;margin-top:17px;padding-top:15px;display:grid}.admin-user-details section h4{margin:0 0 10px;font-size:14px}.admin-user-record-list{gap:8px;display:grid}.admin-user-record{background:#f7f8f5;border-radius:9px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px 12px;display:grid}.admin-user-record>div{gap:4px;min-width:0;display:grid}.admin-user-record>div strong{overflow-wrap:anywhere;font-size:13px}.admin-user-record small{color:#7e8981;overflow-wrap:anywhere;font-size:11px}.admin-user-record>strong{white-space:nowrap}.admin-user-pagination{color:#718078;justify-content:center;align-items:center;gap:16px;margin:8px 0 20px;font-size:13px;display:flex}@media (max-width:850px){.admin-user-metrics{grid-template-columns:1fr 1fr}.admin-user-filter{grid-template-columns:1fr auto auto}}@media (max-width:520px){.admin-user-head{display:grid}.admin-user-metrics{grid-template-columns:1fr}.admin-user-filter{grid-template-columns:1fr auto}.admin-user-filter .text-button{grid-column:1/-1;justify-self:start}.admin-user-record{grid-template-columns:1fr auto}.admin-user-record>span{grid-column:1/-1;justify-self:start}}.alipay-notify-url{overflow-wrap:anywhere;color:#355b49;background:#f7f8f5;border:1px solid #e7eae5;border-radius:8px;padding:14px 16px;font-size:13px;display:block}.scan-import-shell{max-width:1500px;margin:0 auto;padding:0 32px 40px}.scan-import-tabs{border-bottom:1px solid var(--line);gap:8px;margin:0 0 22px;display:flex}.scan-import-tabs button{color:#718078;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 17px}.scan-import-tabs button.active{color:var(--green);border-color:#548d73;font-weight:700}.scan-import-heading{justify-content:space-between;align-items:center;gap:20px;margin:8px 0 18px;display:flex}.scan-import-heading h2,.scan-pdf-panel h2{margin:6px 0;font-size:22px}.scan-import-heading p,.scan-pdf-panel>p{color:#77847c;margin:6px 0 0;font-size:13px;line-height:1.65}.scan-progress{white-space:nowrap;color:#47765b;background:#edf5ef;border-radius:20px;padding:9px 13px;font-size:12px}.scan-import-layout{grid-template-columns:285px minmax(0,1fr);align-items:start;gap:16px;display:grid}.scan-page-list{padding:15px;position:sticky;top:15px}.scan-page-actions{justify-content:space-between;align-items:center;gap:8px;display:flex}.scan-page-actions .secondary-btn{padding:10px 11px;font-size:11px}.scan-page-actions .text-button{font-size:11px}.scan-page-buttons{gap:7px;max-height:420px;margin:15px 0;display:grid;overflow:auto}.scan-page-buttons>button{text-align:left;cursor:pointer;background:#fff;border:1px solid #e5ebe5;border-radius:10px;grid-template-columns:48px minmax(0,1fr);align-items:center;gap:9px;padding:8px;display:grid;position:relative}.scan-page-buttons>button.selected{background:#f4faf5;border-color:#539476;box-shadow:0 0 0 2px #4e926515}.scan-page-thumb{background:#eef2ee;border-radius:5px;width:48px;height:54px;overflow:hidden}.scan-page-thumb img{object-fit:cover;width:100%;height:100%}.scan-page-buttons>button>span:nth-child(2){gap:4px;min-width:0;display:grid}.scan-page-buttons strong{color:#384b40;font-size:11px}.scan-page-buttons small{color:#849188;text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.scan-page-state{color:#8a968e;grid-column:2;font-size:9px;font-style:normal}.scan-page-state.done{color:#38805d}.scan-page-state.failed{color:#b75d4a}.scan-empty{text-align:center;color:#52665a;align-content:center;justify-items:center;gap:9px;min-height:165px;padding:15px;display:grid}.scan-empty>b{color:#78a88d;font-size:30px}.scan-empty strong{font-size:12px}.scan-empty small{color:#87938b;font-size:10px;line-height:1.6}.scan-parameters{border-top:1px solid #e8ede8;gap:12px;padding-top:13px;display:grid}.scan-parameters>strong{color:#53665a;font-size:12px}.scan-parameters label{color:#708077;grid-template-columns:1fr auto;gap:7px;font-size:11px;display:grid}.scan-parameters label b{color:#4c8065;font:11px DM Mono,monospace}.scan-parameters input{accent-color:#4e8a6b;grid-column:1/-1;width:100%}.scan-adjust-workspace{gap:15px;min-width:0;display:grid}.scan-adjust-card{min-width:0;padding:18px}.scan-adjust-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.scan-adjust-toolbar h3{margin:5px 0 0;font-size:17px}.scan-adjust-toolbar>label{color:#77847c;gap:4px;font-size:10px;display:grid}.scan-adjust-toolbar>label input{width:105px}.scan-instruction{color:#75837a;background:#f6f8f4;border-radius:8px;margin:13px 0;padding:10px 12px;font-size:12px}.scan-corner-svg,.scan-cell-svg{touch-action:none;background:#edf1ec;border:1px solid #e1e8e1;border-radius:8px;width:100%;height:auto;max-height:70vh;display:block}.scan-corner-poly{fill:#32956818;stroke:#168354;stroke-width:12px;vector-effect:non-scaling-stroke}.scan-corner-handle{fill:#fff;stroke:#0c8b57;stroke-width:9px;vector-effect:non-scaling-stroke;cursor:move;touch-action:none}.scan-adjust-footer{justify-content:space-between;align-items:center;gap:12px;margin-top:13px;display:flex}.scan-adjust-footer>span{color:#89958d;overflow-wrap:anywhere;font-size:10px}.scan-adjust-footer .primary-btn{padding:10px 13px;font-size:11px}.scan-cell-box{fill:#23835410;stroke:#71887a;stroke-width:5px;vector-effect:non-scaling-stroke}.scan-cell-box.selected{fill:#18885610;stroke:#188856;stroke-width:8px}.scan-cell-label{fill:#288156;opacity:.8;pointer-events:none;font:65px sans-serif}.scan-cell-active{fill:#208b5520;stroke:#0e8a53;stroke-width:9px;vector-effect:non-scaling-stroke;cursor:move;touch-action:none}.scan-cell-handle{fill:#fff;stroke:#087d4b;stroke-width:9px;vector-effect:non-scaling-stroke;cursor:nwse-resize;touch-action:none}.scan-position-hint{color:#77867d;margin-top:8px;font-size:10px;display:block}.scan-character-nav{justify-content:center;align-items:end;gap:11px;margin:14px 0;display:flex}.scan-character-nav>label{color:#728177;gap:5px;min-width:min(440px,55%);font-size:10px;display:grid}.scan-character-nav .text-input{height:38px}.scan-character-nav .secondary-btn{padding:10px 12px;font-size:10px}.scan-cell-chips{border-top:1px solid #edf1ed;flex-wrap:wrap;gap:5px;max-height:120px;padding-top:10px;display:flex;overflow:auto}.scan-cell-chips button{color:#52685a;cursor:pointer;background:#fff;border:1px solid #e1e9e2;border-radius:7px;width:31px;height:31px;font-size:15px}.scan-cell-chips button.selected{color:#16543f;background:#e5f3e8;border-color:#66a17b}.scan-batch-footer{color:#68796e;background:#f2f7f2;border:1px solid #dce9de;border-radius:12px;justify-content:space-between;align-items:center;gap:18px;margin:16px 0;padding:14px 17px;font-size:11px;display:flex}.scan-batch-footer .primary-btn{white-space:nowrap}.scan-results{margin-top:17px;padding:18px}.scan-pdf-panel{gap:15px;max-width:780px;margin:0 auto;padding:25px;display:grid}.scan-pdf-panel h2{margin-bottom:0}.scan-pdf-file{color:#426451;background:#f8fbf7;border:1px dashed #b7c8bc;border-radius:10px;gap:7px;padding:16px;font-size:12px;display:grid}.scan-pdf-panel>label:not(.scan-pdf-file){color:#63756a;gap:7px;font-size:12px;display:grid}.scan-pdf-panel>label small{color:#89968d}.scan-pdf-tuning{grid-template-columns:repeat(3,1fr);gap:15px;display:grid}.scan-pdf-tuning label{color:#68786e;gap:8px;font-size:11px;display:grid}.scan-pdf-tuning input{accent-color:#4c8c68;width:100%}.scan-results .cell-grid{margin-top:15px}@media (max-width:950px){.scan-import-layout{grid-template-columns:1fr}.scan-page-list{position:static}.scan-page-buttons{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));max-height:230px}.scan-parameters{grid-template-columns:repeat(3,1fr)}.scan-parameters>strong{grid-column:1/-1}.scan-parameters label{flex-wrap:wrap;align-items:center;display:flex}.scan-parameters label input{flex:1 0 100%}}@media (max-width:600px){.scan-import-shell{padding:0 12px 25px}.scan-import-heading{align-items:flex-start}.scan-import-heading h2{font-size:19px}.scan-import-heading p{font-size:11px}.scan-progress{padding:7px 9px;font-size:10px}.scan-adjust-card,.scan-results{padding:12px}.scan-adjust-toolbar h3{font-size:14px}.scan-adjust-toolbar .muted{font-size:9px}.scan-adjust-footer{flex-direction:column;align-items:flex-start}.scan-adjust-footer .primary-btn{width:100%}.scan-character-nav{gap:5px}.scan-character-nav>label{flex:1;min-width:0}.scan-character-nav .secondary-btn{padding:9px 7px;font-size:9px}.scan-batch-footer{flex-direction:column;align-items:stretch}.scan-batch-footer .primary-btn{width:100%}.scan-pdf-tuning,.scan-parameters{grid-template-columns:1fr}.scan-parameters>strong{grid-column:1}}.scan-region-tools{color:#587163;justify-content:space-between;align-items:center;gap:12px;margin:12px 0 8px;font-size:11px;display:flex}.scan-region-tools button{color:#28694d;cursor:pointer;background:#fff;border:1px solid #b9d2c1;border-radius:7px;flex:none;padding:8px 11px;font-size:10px}.scan-region-tools button.active{background:#eaf5ed;border-color:#198453}.scan-cell-svg.drawing{cursor:crosshair}.scan-cell-draw-surface{fill:#0000;pointer-events:all;cursor:crosshair;touch-action:none}.scan-cell-draft{fill:#18885633;stroke:#087d4b;stroke-width:10px;stroke-dasharray:24 14;vector-effect:non-scaling-stroke}.scan-cell-handle-group{cursor:nwse-resize;touch-action:none}.scan-cell-handle-hit{fill:#0000;stroke:#0000;pointer-events:all;cursor:nwse-resize;touch-action:none}.scan-cell-handle-visible{fill:#fff;stroke:#087d4b;stroke-width:3px;vector-effect:non-scaling-stroke;pointer-events:none}@media (max-width:600px){.scan-region-tools{flex-direction:column;align-items:flex-start}}.rotation-range{color:#809087;white-space:nowrap;align-items:center;gap:7px;font-size:10px;display:flex}.rotation-range input{width:88px;accent-color:var(--green);margin:0}.rotation-range b{color:#b47a55;min-width:32px;font:9px DM Mono,monospace}.add-char-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.4fr) minmax(240px,1fr);align-items:end;gap:18px;padding:18px 0;display:grid}.add-char-row .field-label{margin:0}.add-char-input{resize:vertical;min-height:72px;margin-top:7px;font:12px/1.6 Manrope,sans-serif}.add-char-row>div{justify-content:space-between;align-items:center;gap:12px;display:flex}.add-char-row small{color:#89978f;font-size:10px;line-height:1.6}.font-orientation-control{background:#f9fcf9;border:1px solid #e1e9e2;border-radius:9px;margin:4px 0 15px;padding:13px 12px}.font-orientation-control>div:first-child strong,.font-orientation-control>div:first-child span{display:block}.font-orientation-control>div:first-child strong{color:var(--ink);font-size:11px}.font-orientation-control>div:first-child span{color:#89978f;margin-top:4px;font-size:9px;line-height:1.5}.font-orientation-actions{flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px;display:flex}.font-orientation-actions .secondary-btn{padding:7px 8px;font-size:9px}.font-orientation-actions b{text-align:center;color:#b47a55;min-width:34px;font:11px DM Mono,monospace}.font-orientation-control>input{width:100%;accent-color:var(--green);margin:12px 0 0}@media (max-width:720px){.rotation-range input{width:70px}.editor-actions{flex-wrap:wrap}.add-char-row{grid-template-columns:1fr}.add-char-row>div{flex-direction:column;align-items:flex-start}}:root{color:#17221f;font-synthesis:none;--ink:#17221f;--muted:#7b8983;--green:#155446;--green-2:#1d6b5a;--line:#dde6e0;--paper:#fffefb;--orange:#c87f4e;background:#f3f6f2;font-family:Manrope,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}body{background:#f3f6f2;min-width:320px;margin:0}.app-shell{min-height:100vh}.main{min-height:100vh;position:relative}.topbar{border-bottom:1px solid var(--line);z-index:5;background:#ffffffd6;align-items:center;gap:34px;height:78px;padding:0 38px;display:flex;position:relative}.main:not(.with-sidebar) .topbar{padding:0 6vw}.brand{color:var(--ink);cursor:pointer;letter-spacing:-.05em;background:0 0;border:0;align-items:center;gap:10px;font-size:18px;font-weight:800;display:flex}.brand-mark{background:var(--green);color:#d6eadd;border-radius:9px;place-items:center;width:31px;height:31px;font-family:Georgia,serif;font-size:20px;font-style:italic;display:grid}.crumb{align-items:center;gap:14px;font-size:13px;display:flex}.slash{color:#bdc8c2}.muted{color:var(--muted);font-size:12px}.top-actions{color:#728078;align-items:center;gap:8px;margin-left:auto;font:11px DM Mono,monospace;display:flex}.status-dot{background:#5bb895;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #e5f4eb}.sidebar{border-right:1px solid var(--line);z-index:3;background:#f8faf7;flex-direction:column;width:272px;padding:24px 18px 18px;display:flex;position:fixed;top:78px;bottom:0;left:0}.project-mini{background:#eef4ef;border:1px solid #dbe7de;border-radius:13px;align-items:center;gap:10px;margin-bottom:32px;padding:13px;display:flex}.project-avatar{color:#effaf2;background:#2c7765;border-radius:9px;place-items:center;width:32px;height:32px;font-family:Georgia,serif;font-size:18px;font-style:italic;display:grid}.project-mini small,.project-mini strong{display:block}.project-mini small{color:#83918b;text-transform:uppercase;letter-spacing:.1em;font-size:9px}.project-mini strong{white-space:nowrap;text-overflow:ellipsis;max-width:150px;margin-top:3px;font-size:13px;overflow:hidden}.mini-chevron{color:#789087;margin-left:auto}.side-label,.section-kicker,.panel-eyebrow,.eyebrow{letter-spacing:.12em;color:#87958d;font:10px DM Mono,monospace}.side-label{padding:0 13px 10px}.side-item{text-align:left;cursor:pointer;color:#6b7972;background:0 0;border:0;border-radius:12px;align-items:center;gap:10px;width:100%;margin:2px 0;padding:12px;transition:all .2s;display:flex}.side-item.active{color:var(--green);background:#e2eee5}.side-number{color:#a3b0aa;font:10px DM Mono,monospace}.side-icon{text-align:center;width:22px;font-size:21px}.side-copy strong,.side-copy small{display:block}.side-copy small{color:#99a59f;margin-top:3px;font-size:10px}.side-bottom{margin-top:auto}.side-tip{color:#9b704d;background:#fffaf0;border:1px solid #f2e4ca;border-radius:12px;gap:9px;padding:12px;display:flex}.side-tip>span{border:1px solid #dbb48e;border-radius:50%;place-items:center;width:17px;height:17px;font:11px Georgia;display:grid}.side-tip strong,.side-tip small{display:block}.side-tip strong{font-size:11px}.side-tip small{color:#a8896f;margin-top:3px;font-size:9px;line-height:1.5}.back-projects{color:#7f8d86;cursor:pointer;background:0 0;border:0;padding:17px 5px 0;font-size:11px}.home-page{max-width:1180px;margin:auto;padding:50px 6vw 28px}.home-hero{color:#f6fbf5;background:#123c34;border-radius:23px;min-height:282px;padding:49px 54px;display:flex;position:relative;overflow:hidden}.home-hero:after{content:"";pointer-events:none;background:linear-gradient(110deg,#0000 30%,#ffffff09);position:absolute;top:0;bottom:0;left:0;right:0}.home-hero .eyebrow{color:#91b7a2}.home-hero h1{letter-spacing:-.07em;margin:17px 0 14px;font-size:43px;line-height:1.12}.home-hero h1 em,.setup-intro h1 em{color:#b9dfbf;font-family:Georgia,serif;font-weight:400}.home-hero p{color:#b9cfc3;margin:0;font-size:14px;line-height:1.8}.hero-orbit{width:275px;height:250px;position:absolute;top:15px;right:92px}.orbit-ring{border:1px solid #b9dfbf4d;border-radius:50%;width:225px;height:225px;position:absolute;top:5px;left:26px;transform:rotate(-25deg)skew(-13deg)}.orbit-ring:after{content:"";border:1px dashed #b9dfbf2e;border-radius:50%;position:absolute;top:27px;bottom:27px;left:27px;right:27px}.hero-glyph{color:#e0f4df;letter-spacing:-.22em;font:104px Georgia,serif;position:absolute;top:74px;left:85px}.orbit-label{color:#9dc2aa;font:9px DM Mono,monospace;position:absolute}.orbit-label.one{top:25px;right:0}.orbit-label.two{bottom:37px;right:8px}.orbit-label.three{bottom:62px;left:0}.section-head{justify-content:space-between;align-items:end;margin:54px 2px 19px;display:flex}.section-head h2{letter-spacing:-.04em;margin:8px 0 0;font-size:24px}.primary-btn,.secondary-btn{cursor:pointer;border:0;border-radius:10px;justify-content:center;align-items:center;gap:12px;padding:12px 17px;font:600 12px Manrope,sans-serif;text-decoration:none;transition:all .2s;display:inline-flex}.primary-btn{background:var(--green);color:#f2faf2}.primary-btn:hover{background:#0c4539;transform:translateY(-1px)}.primary-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.secondary-btn{color:var(--green);background:#fff;border:1px solid #cfdcd4}.secondary-btn:hover{border-color:var(--green)}.project-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.project-card,.new-card{border:1px solid var(--line);background:#fff;border-radius:15px;min-height:253px;overflow:hidden}.project-card{position:relative}.card-open{text-align:left;cursor:pointer;background:0 0;border:0;width:100%;padding:0}.card-art{color:#31584c;background:#ecefe7;justify-content:center;align-items:center;height:167px;display:flex;position:relative;overflow:hidden}.card-art span:first-child{margin-right:-5px;font:121px Georgia,serif;transform:rotate(-10deg)}.card-art span:nth-child(2){color:#b87448;font:80px Georgia,serif;transform:rotate(10deg)translateY(24px)}.card-art:after{content:"";border:1px solid #26675221;border-radius:50%;width:170px;height:170px;position:absolute;top:20px;left:-20px}.card-art i{color:#60816f;background:#f7fbf5;border-radius:20px;padding:6px 9px;font:9px DM Mono,monospace;position:absolute;top:12px;right:12px}.card-body{justify-content:space-between;padding:16px 17px;display:flex}.card-body h3{margin:0;font-size:14px}.card-body p{color:#8c9892;margin:6px 0 0;font-size:10px}.arrow{color:#80938a;font-size:17px}.delete-link{color:#b3bcb7;cursor:pointer;background:0 0;border:0;font-size:10px;position:absolute;bottom:16px;right:17px}.new-card{color:#83928a;cursor:pointer;border-style:dashed;flex-direction:column;justify-content:center;align-items:center;gap:5px;display:flex}.new-card span{color:#528878;font-size:28px;font-weight:300}.new-card strong{color:#587367;font-size:13px}.new-card small{font-size:10px}.empty-card,.loading-card{border:1px solid var(--line);background:#fff;border-radius:16px;min-height:230px}.empty-card{justify-content:center;align-items:center;gap:55px;display:flex}.empty-art{background:#edf3ed;border-radius:50%;justify-content:center;align-items:center;gap:0;width:205px;height:130px;display:flex;position:relative;overflow:hidden}.empty-art span{color:#246352;font:62px Georgia,serif;transform:rotate(-8deg)}.empty-art span:nth-child(2){color:#bf794b;font-size:45px;transform:rotate(6deg)translateY(19px)}.empty-art span:nth-child(3){color:#7e9d8d;font-size:37px;transform:rotate(9deg)translateY(-15px)}.empty-card h3{margin:0 0 8px;font-size:18px}.empty-card p{color:#85928b;margin:0 0 19px;font-size:12px}.loading-card{color:#819089;justify-content:center;align-items:center;gap:10px;font-size:13px;display:flex}.spinner{border:2px solid #bed2c7;border-top-color:var(--green);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.spinner.small{border-width:2px;width:12px;height:12px}@keyframes spin{to{transform:rotate(360deg)}}.home-footer{color:#aab4ae;justify-content:space-between;padding:60px 2px 0;font:10px DM Mono,monospace;display:flex}.setup-page{max-width:1130px;margin:auto;padding:38px 6vw}.back-link,.back-projects{color:#829087;cursor:pointer;background:0 0;border:0;font-size:12px}.setup-layout{grid-template-columns:40% 1fr;gap:95px;padding:83px 5% 40px;display:grid}.setup-intro h1{letter-spacing:-.07em;margin:17px 0;font-size:43px;line-height:1.1}.setup-intro>p{color:#7d8d84;max-width:310px;font-size:13px;line-height:1.9}.intro-note{border-left:2px solid #b2d0ba;gap:11px;margin-top:38px;padding-left:14px;display:flex}.intro-note>span{color:#bd754a}.intro-note strong,.intro-note small{display:block}.intro-note strong{font-size:11px}.intro-note small{color:#93a097;margin-top:4px;font-size:10px;line-height:1.6}.setup-form{padding-top:5px}.field-label{color:#697970;margin:0 0 9px;font-size:11px;display:block}.field-label>span{float:right;color:#9baaa1;font:10px DM Mono,monospace}.text-input{width:100%;color:var(--ink);background:#fff;border:1px solid #dce5de;border-radius:9px;outline:none;margin-top:8px;padding:12px 13px;font:13px Manrope,sans-serif;transition:all .2s;display:block}.text-input:focus{border-color:#8bb8a0;box-shadow:0 0 0 3px #e4f1e7}.text-input.large{margin-bottom:31px;padding:15px 14px;font-size:17px}.charset-tabs{background:#edf2ed;border-radius:8px;margin:9px 0 13px;padding:3px;display:flex}.charset-tabs button{color:#839189;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:1;padding:9px;font-size:11px}.charset-tabs button.selected{color:var(--green);background:#fff;box-shadow:0 1px 4px #dae5dc}.charset-preview{background:#fbfdfb;border:1px solid #e0e8e1;border-radius:9px;flex-wrap:wrap;align-content:flex-start;gap:5px;min-height:147px;padding:13px;display:flex}.charset-preview span{color:#346858;background:#f0f5ef;border-radius:5px;place-items:center;width:28px;height:28px;font:14px Georgia,serif;display:grid}.charset-area{resize:vertical;height:147px;font-size:15px;line-height:1.7}.form-rule{border-top:1px solid var(--line);margin:25px 0 18px}.form-foot{justify-content:space-between;align-items:center;gap:20px;display:flex}.form-foot small,.hint-text{color:#91a098;font-size:10px;line-height:1.7}.inline-error,.warning-box{color:#ae603c;background:#fff5ee;border:1px solid #f0d1bd;border-radius:8px;margin-top:13px;padding:10px;font-size:11px}.with-help{margin-bottom:0}.workspace-page{max-width:1400px;margin:auto;padding:47px 47px 60px}.step-header{align-items:flex-start;gap:18px;margin:0 0 31px;display:flex}.step-index{background:var(--green);color:#e6f5e8;border-radius:10px;place-items:center;width:35px;height:35px;margin-top:2px;font:11px DM Mono,monospace;display:grid}.step-header h1{letter-spacing:-.06em;margin:7px 0;font-size:29px}.step-header p{color:#8b9991;margin:0;font-size:12px}.template-layout,.upload-layout,.export-layout{grid-template-columns:330px 1fr;gap:19px;display:grid}.panel{border:1px solid var(--line);background:#fff;border-radius:14px;overflow:hidden}.instructions,.upload-controls,.metadata-panel{padding:22px}.panel-title{gap:12px;display:flex}.title-icon{color:#c37b4c;font-size:19px}.panel h3{letter-spacing:-.02em;margin:4px 0 0;font-size:14px}.panel-title p{color:#8b9891;margin:8px 0 0;font-size:11px;line-height:1.7}.instruction-list{border-top:1px solid var(--line);margin-top:25px;padding-top:8px}.instruction-list>div{border-bottom:1px solid #eff3ef;gap:12px;padding:12px 0;display:flex}.instruction-list b{color:#c17b4c;font:10px DM Mono,monospace}.instruction-list span{color:#6c7c74;font-size:11px;line-height:1.55}.info-box{background:#f0f7f0;border-radius:9px;gap:9px;margin:20px 0;padding:11px;display:flex}.info-box>span{color:#2d715c;border:1px solid #8cb49c;border-radius:50%;place-items:center;width:17px;height:17px;font:11px Georgia;display:grid}.info-box strong,.info-box small{display:block}.info-box strong{color:#326954;font-size:10px}.info-box small{color:#789184;margin-top:4px;font-size:9px;line-height:1.5}.full{width:100%}.template-preview,.result-panel,.type-preview{min-height:600px;padding:24px}.preview-toolbar,.panel-heading{justify-content:space-between;align-items:start;display:flex}.panel-eyebrow{display:block}.panel-heading h3,.preview-toolbar h3{margin-top:6px}.preview-status,.format-pill,.valid-pill{color:#91a098;font:10px DM Mono,monospace}.download-actions{gap:7px;display:flex}.download-btn{color:#28634f;background:#eff7f0;border-radius:7px;padding:8px 12px;font:10px DM Mono,monospace;text-decoration:none}.download-btn.ghost{color:#809189;background:#f6f8f5}.paper-wrap{background:#f7f8f3;place-items:center;width:min(81%,560px);min-height:470px;margin:22px auto 0;display:grid;overflow:hidden;box-shadow:0 7px 25px #1c392b1a}.paper-wrap img{width:100%;display:block}.paper-placeholder{color:#9eaaa3;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;height:470px;font-size:12px;display:flex;position:relative}.paper-placeholder small{color:#b1bbb5;font:10px DM Mono,monospace}.placeholder-marks{pointer-events:none;justify-content:space-between;display:flex;position:absolute;top:22px;bottom:22px;left:22px;right:22px}.placeholder-marks:after{content:"";border:1px dashed #d5ded6;position:absolute;top:0;bottom:0;left:0;right:0}.placeholder-marks i{z-index:1;background:#b5c4b9;border-radius:50%;width:10px;height:10px;position:relative}.placeholder-marks i:nth-child(3),.placeholder-marks i:nth-child(4){align-self:end}.placeholder-marks i:nth-child(2),.placeholder-marks i:nth-child(4){margin-left:auto}.upload-layout{grid-template-columns:330px 1fr}.upload-controls{align-self:start}.panel-heading{margin-bottom:21px}.format-pill{background:#f1f5f0;border-radius:5px;padding:6px 7px;font-size:8px}.dropzone{color:#4d7565;cursor:pointer;background:#f6fbf6;border:1px dashed #a9c6b2;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:100%;min-height:135px;display:flex}.dropzone.has-file{background:#eef8f0;border-style:solid}.upload-icon{color:#74a78c;font-size:27px}.dropzone strong{font-size:12px}.dropzone small{color:#8fa097;font-size:10px}.settings-title{border-bottom:1px solid var(--line);color:#526b5d;justify-content:space-between;margin:23px 0 17px;padding-bottom:10px;font-size:11px;display:flex}.settings-title small{color:#adb7b0;font-size:9px}.range-field{color:#788880;margin:16px 0;font-size:10px;display:block}.range-field span{justify-content:space-between;display:flex}.range-field b{color:#507160;font:10px DM Mono,monospace}input[type=range]{width:100%;accent-color:var(--green);margin-top:10px}.result-panel{min-height:500px}.count-badge{color:#39715c;background:#e6f1e7;border-radius:20px;place-items:center;min-width:20px;height:20px;margin-left:4px;font:10px DM Mono,monospace;display:inline-grid}.warning-box{align-items:center;gap:7px;margin:0 0 16px;display:flex}.warning-box span{border:1px solid #ce8b62;border-radius:50%;place-items:center;width:16px;height:16px;font-size:10px;display:grid}.result-empty{color:#85958c;flex-direction:column;justify-content:center;align-items:center;height:370px;display:flex}.result-empty h3{margin:17px 0 5px;font-size:13px}.result-empty p{font-size:10px}.empty-grid{opacity:.65;grid-template-columns:repeat(4,48px);gap:7px;display:grid}.empty-grid span{color:#66917b;background:#f3f7f2;border:1px solid #dfe8df;border-radius:4px;place-items:center;height:52px;font:21px Georgia;display:grid}.cell-grid{grid-template-columns:repeat(auto-fill,minmax(105px,1fr));gap:10px;display:grid}.cell-card{background:#fbfdfb;border:1px solid #e2e9e3;border-radius:9px;padding:6px}.cell-card.empty{background:#fff9f4;border-color:#efcdb7}.cell-image{background:#f2f5f1;border-radius:5px;place-items:center;height:95px;display:grid;position:relative;overflow:hidden}.cell-image img{object-fit:contain;mix-blend-mode:multiply;max-width:100%;max-height:100%}.cell-status{color:#6b8a76;background:#ffffffe0;border-radius:4px;padding:3px 5px;font:7px DM Mono,monospace;position:absolute;bottom:4px;right:4px}.cell-card.empty .cell-status{color:#b36e49}.cell-card input{text-align:center;width:100%;color:var(--green);background:0 0;border:0;border-bottom:1px solid #dce6de;outline:none;padding:7px 1px 4px;font:18px Georgia}.cell-card small{text-align:center;color:#a0ada5;padding-top:5px;font:8px DM Mono,monospace;display:block}.editor-layout{grid-template-columns:240px 1fr;gap:15px;display:grid}.glyph-sidebar .panel-heading{margin-bottom:13px;padding:0 9px}.glyph-list{max-height:670px;overflow:auto}.glyph-row{text-align:left;cursor:pointer;color:#6d7d74;background:0 0;border:0;border-radius:9px;grid-template-columns:38px 1fr 18px;align-items:center;gap:8px;width:100%;padding:8px;display:grid}.glyph-row.selected{color:var(--green);background:#e5f1e7}.glyph-char{text-align:center;color:#2b6654;font:24px Georgia,serif}.glyph-row strong,.glyph-row small{display:block}.glyph-row strong{color:#879a8e;font:8px DM Mono,monospace}.glyph-row small{color:#9baaa2;margin-top:3px;font-size:9px}.glyph-row i{color:#c3cec6;font-style:normal}.glyph-row i.done{color:#4b9a77}.editor-workspace{min-width:0}.editor-toolbar{border-bottom:1px solid var(--line);background:#fbfdfb;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.tool-group{align-items:center;gap:5px;display:flex}.tool-btn,.text-tool{color:#72837a;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:7px 9px;font-size:11px}.tool-btn{font-size:17px}.tool-btn:hover,.text-tool:hover{color:var(--green);background:#edf4ee}.tool-btn:disabled{opacity:.35;cursor:not-allowed}.text-tool.danger{color:#a36a4d}.toolbar-rule{border-left:1px solid var(--line);height:20px;margin:0 7px}.zoom-label{color:#86978e;text-align:center;min-width:35px;font:10px DM Mono,monospace}.canvas-stage{aspect-ratio:1;background:#f8fcf8;border:1px solid #dce8df;width:min(70vw,650px);margin:20px auto;position:relative;overflow:hidden}.svg-wrap{transform-origin:50%;width:100%;height:100%;transition:transform .2s}.svg-wrap svg{touch-action:none;width:100%;height:100%;display:block}.anchor{fill:#fff;stroke:#155446;stroke-width:4px;cursor:move}.anchor:hover{fill:#d6f0dc}.handle{fill:#cf8d55;stroke:#fff;stroke-width:3px;cursor:move}.canvas-ruler{z-index:2;color:#a2b1a8;pointer-events:none;justify-content:space-between;font:8px DM Mono,monospace;display:flex;position:absolute}.canvas-ruler.top{top:5px;left:10px;right:10px}.canvas-ruler.left{flex-direction:column;top:10px;bottom:10px;left:5px}.baseline-label{color:#be7b52;transform-origin:100%;font:8px DM Mono,monospace;position:absolute;bottom:17%;right:8px;transform:rotate(-90deg)}.editor-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.opacity-control{color:#809087;white-space:nowrap;align-items:center;gap:8px;font-size:10px;display:flex}.opacity-control input{width:100px;margin:0}.opacity-control b{color:#b47a55;font:9px DM Mono,monospace}.editor-actions{gap:7px;display:flex}.editor-actions .secondary-btn{padding:9px 11px;font-size:10px}.editor-actions .primary-btn{padding:9px 13px;font-size:10px}.export-layout{grid-template-columns:330px 1fr}.metadata-panel{align-self:start}.metadata-panel .field-label{margin-bottom:14px}.metric-row{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.metric-row .text-input{padding:10px 7px;font-size:11px}.check-list{border-top:1px solid var(--line);margin:10px 0 17px;padding-top:10px}.check-list div{color:#688173;padding:5px 0;font-size:10px}.check-list span{color:#3b8a64;background:#e5f3e6;border-radius:50%;place-items:center;width:15px;height:15px;margin-right:7px;font-size:9px;display:inline-grid}.check-list .bad{color:#ad6e4b}.check-list .bad span{color:#bc7048;background:#fff0e8}.export-button{padding:14px}.hint-text{margin-top:10px;display:block}.download-big{color:#3f8369;justify-content:center;margin-top:14px;font:10px DM Mono,monospace;text-decoration:none;display:flex}.type-preview{min-height:560px}.preview-textarea{resize:vertical;color:#38483f;background:#fafdfa;border:1px solid #e0e8e1;border-radius:8px;outline:none;width:100%;min-height:65px;margin-top:26px;padding:12px;font:12px Manrope;display:block}.type-specimen{color:#204c40;word-break:break-word;border-top:1px solid #eff3ef;border-bottom:1px solid #eff3ef;min-height:330px;margin-top:15px;padding:43px 24px;font:42px/1.35 Georgia,serif}.preview-meta{color:#9aa9a0;justify-content:space-between;padding-top:13px;font:9px DM Mono,monospace;display:flex}.toast{z-index:20;border:1px solid var(--line);background:#fff;border-radius:9px;align-items:center;gap:9px;max-width:370px;padding:12px 15px;font-size:12px;display:flex;position:fixed;top:91px;right:29px;box-shadow:0 9px 30px #163e2b1c}.toast span{color:#34875e;background:#e4f3e6;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;display:grid}.toast.error{border-color:#f0d0bd}.toast.error span{color:#ba6d47;background:#fff0e7}.toast.info span{color:#548296;background:#e8f1f4}@media (max-width:1000px){.home-hero{padding:39px}.hero-orbit{opacity:.5;right:22px}.project-grid{grid-template-columns:repeat(2,1fr)}.setup-layout{gap:35px}.workspace-page{padding:36px 28px}.template-layout,.upload-layout,.export-layout{grid-template-columns:285px 1fr}.editor-layout{grid-template-columns:200px 1fr}}@media (max-width:720px){.main.with-sidebar{padding-left:0}.sidebar{border-right:0;border-bottom:1px solid var(--line);width:100%;height:auto;padding:12px;display:block;position:static;top:auto}.sidebar nav{gap:4px;display:flex;overflow:auto}.project-mini{margin-bottom:12px}.side-label,.side-bottom,.side-copy small,.side-number{display:none}.side-item{justify-content:center;min-width:108px;padding:9px}.side-copy strong{font-size:10px}.topbar{height:62px;padding:0 17px!important}.top-actions{display:none}.crumb{margin-left:auto;font-size:11px}.home-page{padding:25px 17px}.home-hero{min-height:280px;padding:31px 25px}.home-hero h1{font-size:34px}.hero-orbit{opacity:.34;top:75px;right:-55px;transform:scale(.8)}.section-head{margin-top:34px}.section-head h2{font-size:21px}.project-grid{grid-template-columns:1fr}.empty-card{text-align:center;flex-direction:column;gap:25px;padding:30px 20px}.home-footer{padding-top:40px;line-height:2;display:block}.setup-page{padding:26px 20px}.setup-layout{padding:60px 0 20px;display:block}.setup-intro{margin-bottom:45px}.setup-intro h1{font-size:37px}.workspace-page{padding:29px 15px}.step-header h1{font-size:24px}.template-layout,.upload-layout,.export-layout,.editor-layout{display:block}.instructions,.upload-controls,.metadata-panel{margin-bottom:15px}.template-preview,.result-panel,.type-preview{min-height:0;padding:15px}.paper-wrap{width:90%;min-height:430px}.paper-placeholder{height:430px}.editor-toolbar{flex-wrap:wrap;gap:6px}.text-tool{padding:6px;font-size:10px}.canvas-stage{width:94vw}.editor-bottom{display:block}.editor-actions{justify-content:flex-end;margin-top:12px}.glyph-sidebar{margin-bottom:15px}.glyph-list{gap:4px;max-height:none;display:flex;overflow:auto}.glyph-row{text-align:center;min-width:72px;padding:8px 3px;display:block}.glyph-row span:not(.glyph-char),.glyph-row i{display:none}.glyph-char{font-size:23px}.preview-meta{line-height:2;display:block}.preview-meta span{margin-right:10px}}.preview-action-row{flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px;display:flex}.preview-action-row .secondary-btn{padding:9px 13px;font-size:11px}.preview-action-row small{color:#8d9a92;font-size:10px}.preview-coverage{color:#87958d;flex-wrap:wrap;justify-content:space-between;gap:10px;padding:10px 2px 0;font-size:10px;display:flex}.preview-coverage .coverage-missing{color:#ad6844}.type-preview .preview-status{text-align:right;max-width:190px;line-height:1.5}.type-specimen-image{object-fit:contain;object-position:left center;background:#fffefb;border-top:1px solid #eff3ef;border-bottom:1px solid #eff3ef;width:100%;height:330px;margin-top:15px;display:block}.upload-mode-shell{padding-top:34px}.mode-switch{background:#e9f0ea;border:1px solid #d8e4da;border-radius:13px;grid-template-columns:1fr 1fr;gap:5px;max-width:760px;margin:0 auto 2px;padding:5px;display:grid}.mode-switch button{text-align:left;color:#84938a;cursor:pointer;background:0 0;border:0;border-radius:9px;align-items:center;gap:11px;padding:12px 15px;display:flex}.mode-switch button>span{color:#82a38e;text-align:center;width:26px;font-size:24px}.mode-switch button strong,.mode-switch button small{display:block}.mode-switch button strong{font-size:12px}.mode-switch button small{color:#a0ada5;margin-top:3px;font-size:9px}.mode-switch button.active{color:#155446;background:#fff;box-shadow:0 2px 9px #cfddd2}.mode-switch button.active>span{color:#c17b4d}.single-layout{grid-template-columns:330px 1fr;gap:19px;display:grid}.single-select-panel,.single-upload-panel{padding:22px}.single-glyph-grid{grid-template-columns:repeat(5,1fr);gap:6px;max-height:490px;margin-top:18px;display:grid;overflow:auto}.single-glyph-grid button{color:#2c6654;cursor:pointer;background:#fbfdfb;border:1px solid #e0e9e1;border-radius:8px;padding:9px 3px 7px}.single-glyph-grid button:hover{border-color:#9ec4aa}.single-glyph-grid button.selected{background:#e5f1e6;border-color:#246a57;box-shadow:0 0 0 2px #d0e8d5}.single-glyph-grid button span{font:22px Georgia,serif;display:block}.single-glyph-grid button small{color:#91a198;white-space:nowrap;text-overflow:ellipsis;margin-top:5px;font-size:8px;display:block;overflow:hidden}.single-selected-note{border-top:1px solid var(--line);align-items:baseline;gap:9px;margin-top:19px;padding-top:14px;display:flex}.single-selected-note span{color:#87968e;font-size:10px}.single-selected-note strong{color:#bd7449;font:32px Georgia,serif}.single-selected-note small{color:#a1aea5;font:9px DM Mono,monospace}.single-dropzone{color:#4d7565;cursor:pointer;background:#f6fbf6;border:1px dashed #a9c6b2;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:7px;width:100%;min-height:150px;display:flex}.single-dropzone.has-file{background:#edf8ef;border-style:solid}.single-dropzone strong{font-size:12px}.single-dropzone small{color:#8fa097;font-size:10px}.single-preview-row{grid-template-columns:190px 1fr;align-items:center;gap:24px;margin-top:20px;display:grid}.single-preview{background:#f4f8f3;border:1px solid #e1e9e2;border-radius:10px;place-items:center;height:190px;display:grid;position:relative;overflow:hidden}.single-preview>span{color:#9aa9a1;font:8px DM Mono,monospace;position:absolute;top:8px;left:9px}.single-preview img{object-fit:contain;mix-blend-mode:multiply;max-width:100%;max-height:100%}.single-preview b{color:#d2dfd4;font:400 90px Georgia,serif}.single-flow{color:#a6b2aa;justify-content:center;align-items:center;gap:13px;display:flex}.single-flow>div{text-align:center}.single-flow b{color:#5e9175;border:1px solid #c9dacf;border-radius:50%;place-items:center;width:28px;height:28px;margin:0 auto 7px;font:10px DM Mono,monospace;display:grid}.single-flow span{font-size:9px;display:block}.single-flow i{color:#cf8a60;font-size:16px;font-style:normal}.single-actions{border-top:1px solid var(--line);justify-content:flex-end;gap:9px;margin-top:23px;padding-top:16px;display:flex}.single-actions .primary-btn,.single-actions .secondary-btn{font-size:11px}.single-info{margin-top:17px}.single-page .step-header{margin-bottom:22px}@media (max-width:720px){.mode-switch{grid-template-columns:1fr}.single-layout{display:block}.single-select-panel{margin-bottom:15px}.single-preview-row{grid-template-columns:1fr}.single-preview{height:230px}.single-flow{padding:5px 0}.single-actions{justify-content:stretch}.single-actions>*{flex:1}}.chinese-setup{max-width:1250px}.chinese-setup-head{justify-content:space-between;align-items:center;padding:58px 4% 31px;display:flex}.chinese-setup-head h1{letter-spacing:-.07em;margin:15px 0 12px;font-size:41px;line-height:1.15}.chinese-setup-head h1 em{color:#2b735e;font-family:Georgia,serif;font-weight:400}.chinese-setup-head p{color:#83928a;max-width:560px;margin:0;font-size:12px;line-height:1.8}.unicode-badge{color:#b8794e;align-items:center;gap:12px;display:flex}.unicode-badge span{color:#d7e7d9;font:87px/1 Georgia,serif}.unicode-badge small{color:#98aaa0;font:9px/1.5 DM Mono,monospace}.chinese-setup-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.charset-source-panel,.extraction-panel{padding:21px}.import-btn{color:#477965;cursor:pointer;background:#f5faf5;border:1px solid #d7e4d9;border-radius:6px;padding:7px 9px;font:9px DM Mono,monospace}.charset-source{resize:vertical;height:174px;margin-top:5px;line-height:1.8}.category-row{flex-wrap:wrap;align-items:center;gap:6px;margin-top:14px;display:flex}.category-row>span{color:#89968f;margin-right:2px;font-size:10px}.category-row button{color:#5b806e;cursor:pointer;background:#fbfdfb;border:1px solid #dce7de;border-radius:6px;padding:6px 8px;font-size:9px}.category-row button:hover{background:#f0f8f1;border-color:#8ab59a}.option-row{border-top:1px solid var(--line);color:#819087;gap:19px;margin-top:17px;padding-top:13px;font-size:10px;display:flex}.option-row input{accent-color:var(--green);vertical-align:-2px;margin-right:5px}.extraction-summary{color:#8a9990;align-items:baseline;gap:7px;margin:25px 0 12px;font-size:10px;display:flex}.extraction-summary strong{color:#246651;font:32px DM Mono,monospace}.extraction-summary i{color:#c4cec6;margin:0 3px;font-style:normal}.extracted-chars{background:#fbfdfb;border:1px solid #e0e9e1;border-radius:9px;flex-wrap:wrap;align-content:flex-start;gap:5px;height:188px;padding:12px;display:flex;overflow:auto}.extracted-chars span{color:#286651;cursor:default;background:#edf5ee;border-radius:5px;place-items:center;width:30px;height:30px;font:15px Georgia,serif;display:grid}.extracted-chars span:hover{background:#dceee0}.extraction-foot{color:#99a79f;justify-content:space-between;padding-top:13px;font-size:9px;display:flex}.chinese-project-meta{justify-content:space-between;align-items:end;gap:50px;margin-top:16px;padding:20px;display:flex}.chinese-project-meta>div:first-child{flex:1;grid-template-columns:1fr 1fr;gap:17px;display:grid}.chinese-project-meta .field-label{margin:0}.meta-action{align-items:center;gap:22px;display:flex}.meta-action small{color:#99a59f;font-size:9px;line-height:1.6}.charset-stats{grid-template-columns:repeat(4,1fr) auto;gap:10px;margin-bottom:17px;display:grid}.charset-stats>div{border:1px solid var(--line);background:#fff;border-radius:11px;padding:15px 17px}.charset-stats strong,.charset-stats span{display:block}.charset-stats strong{color:#246651;font:26px DM Mono,monospace}.charset-stats span{color:#8c9b92;margin-top:4px;font-size:10px}.charset-stats .secondary-btn{white-space:nowrap;align-self:center}.charset-list-panel{padding:0 20px 17px}.charset-list-toolbar{border-bottom:1px solid var(--line);align-items:center;gap:12px;padding:16px 0;display:flex}.search-box{color:#9eaaa2;background:#fbfdfb;border:1px solid #dce6de;border-radius:7px;flex:1;align-items:center;gap:7px;max-width:260px;height:34px;padding:0 9px;display:flex}.search-box input{width:100%;color:var(--ink);background:0 0;border:0;outline:0;font-size:11px}.filter-tabs{background:#f0f5f0;border-radius:7px;padding:3px;display:flex}.filter-tabs button{color:#84938b;cursor:pointer;background:0 0;border:0;border-radius:5px;padding:7px 9px;font-size:10px}.filter-tabs button.active{color:var(--green);background:#fff;box-shadow:0 1px 4px #dbe5dd}.charset-list-toolbar .primary-btn{margin-left:auto;padding:9px 12px;font-size:10px}.charset-table-head,.charset-table-row{grid-template-columns:70px 1fr 1fr 1fr 1fr;align-items:center;gap:12px;display:grid}.charset-table-head{color:#a0aca5;padding:13px 7px 8px;font:9px DM Mono,monospace}.charset-table-row{color:#6d7f74;border-top:1px solid #edf2ee;padding:11px 7px;font-size:10px}.table-char{color:#2d6654;font:24px Georgia,serif}.mono{color:#899a90;font:9px DM Mono,monospace}.state-dot{background:#d4ddd6;border-radius:50%;width:7px;height:7px;margin-right:7px;display:inline-block}.state-dot.done{background:#57a877}.state-dot.failed{background:#ca7b52}.table-path{color:#9aaa9f;font:9px DM Mono,monospace}.table-empty{text-align:center;color:#9ba8a1;padding:50px;font-size:11px}.charset-list-foot{color:#94a299;justify-content:space-between;padding-top:15px;font:9px DM Mono,monospace;display:flex}.export-extras{justify-content:space-between;align-items:center;gap:20px;margin:16px 0 0;padding:17px 22px;display:flex}.export-extras h3{margin:6px 0;font-size:13px}.export-extras p{color:#89978f;margin:0;font-size:10px}.export-extras>div:last-child{white-space:nowrap;align-items:center;gap:8px;display:flex}.export-extras .download-btn{display:inline-block}@media (max-width:800px){.chinese-setup-head{padding:40px 0 25px}.unicode-badge{display:none}.chinese-setup-grid{grid-template-columns:1fr}.chinese-project-meta{display:block}.chinese-project-meta>div:first-child{margin-bottom:17px}.meta-action{justify-content:space-between}.charset-stats{grid-template-columns:repeat(2,1fr)}.charset-stats .secondary-btn{grid-column:span 2;justify-self:start}.charset-list-toolbar{flex-wrap:wrap}.search-box{flex-basis:100%;max-width:none}.charset-list-toolbar .primary-btn{margin-left:0}.charset-table-head{display:none}.charset-table-row{grid-template-columns:42px 1fr 1fr;gap:8px}.charset-table-row>span:nth-child(4),.charset-table-row>span:nth-child(5){grid-column:span 1}.charset-list-foot,.export-extras{display:block}.export-extras>div:last-child{margin-top:13px}}.main.with-sidebar,.sidebar{transition:padding-left .2s,width .2s,padding .2s}.sidebar-toggle{z-index:4;color:#315f4b;cursor:pointer;opacity:0;visibility:hidden;pointer-events:none;background:#fff;border:1px solid #cedbd2;border-radius:8px;place-items:center;width:24px;height:40px;padding:0;transition:opacity .16s,visibility .16s,transform .16s,background .16s;display:grid;position:absolute;top:50%;right:4px;transform:translate(4px,-50%);box-shadow:3px 3px 12px #1c38240d}.sidebar-toggle span{width:auto;height:auto;color:inherit;letter-spacing:-1px;background:0 0;border:0;border-radius:0;padding-right:3px;font:700 14px/1 Arial,sans-serif;display:block}.sidebar:hover .sidebar-toggle,.sidebar:focus-within .sidebar-toggle{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%)}.sidebar-toggle:focus-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(-50%)}.sidebar-toggle:focus-visible{outline-offset:2px;outline:2px solid #548d73}.glyph-list-toggle{border:1px solid var(--line);width:30px;height:30px;color:var(--green);background:#fff;border-radius:8px;place-items:center;font-size:20px;display:grid}.glyph-list-toggle:hover{background:#eaf3eb}.app-shell.sidebar-collapsed .sidebar{width:76px;padding:18px 9px}.main.sidebar-is-collapsed{padding-left:76px}.app-shell.sidebar-collapsed .sidebar-toggle{width:22px;height:36px;right:4px}.app-shell.sidebar-collapsed .project-mini{justify-content:center;margin-bottom:10px;padding:9px 4px}.app-shell.sidebar-collapsed .project-mini>div:not(.project-avatar),.app-shell.sidebar-collapsed .mini-chevron,.app-shell.sidebar-collapsed .side-label,.app-shell.sidebar-collapsed .side-number,.app-shell.sidebar-collapsed .side-copy,.app-shell.sidebar-collapsed .side-bottom{display:none}.app-shell.sidebar-collapsed .side-item{justify-content:center;padding:12px 4px}.app-shell.sidebar-collapsed .side-icon{font-size:18px}.back-projects{color:#315f4b;cursor:pointer;text-align:left;background:#fff;border:1px solid #cbdacf;border-radius:10px;align-items:center;gap:9px;width:100%;margin:-19px 0 24px;padding:10px 11px;font:600 12px Manrope,sans-serif;transition:background .16s,border-color .16s,transform .16s,box-shadow .16s;display:flex;box-shadow:0 3px 10px #1a382408}.back-projects>span:first-child{background:#eaf3eb;border-radius:7px;flex:0 0 25px;place-items:center;width:25px;height:25px;font-size:17px;display:grid}.back-projects:hover{background:#f1f7f1;border-color:#83a991;transform:translateY(-1px);box-shadow:0 5px 14px #1a382410}.back-projects:active{transform:translateY(0)}.back-projects:focus-visible{outline-offset:2px;outline:2px solid #548d73}.app-shell.sidebar-collapsed .back-projects{justify-content:center;width:44px;margin:0 auto 17px;padding:7px 4px}.app-shell.sidebar-collapsed .back-project-label{display:none}.top-actions,.workspace-status{align-items:center;gap:9px;display:flex}.fullscreen-toggle{border:1px solid var(--line);color:#526b5d;cursor:pointer;font:inherit;background:#fff;border-radius:7px;padding:7px 10px;font-size:10px}.app-shell:-webkit-full-screen{background:#f3f6f2;width:100vw;height:100vh;overflow:auto}.app-shell:fullscreen{background:#f3f6f2;width:100vw;height:100vh;overflow:auto}.editor-layout.glyph-list-collapsed{grid-template-columns:52px minmax(0,1fr)}.glyph-sidebar.collapsed{padding:10px 5px}.glyph-sidebar.collapsed .panel-heading{justify-content:center;margin-bottom:0;padding:0}.glyph-list-toggle{cursor:pointer;flex:0 0 30px}.editor-page{flex-direction:column;width:100%;max-width:none;height:calc(100vh - 78px);min-height:650px;padding:24px clamp(16px,2.4vw,38px) 28px;display:flex}.editor-page .editor-layout{flex:auto;grid-template-columns:240px minmax(0,1fr);align-items:stretch;min-height:0}.editor-page .editor-layout.glyph-list-collapsed{grid-template-columns:52px minmax(0,1fr)}.editor-page .glyph-sidebar{flex-direction:column;min-height:0;display:flex}.editor-page .glyph-sidebar .glyph-list{flex:auto;min-height:0;max-height:none}.editor-page .editor-workspace{flex-direction:column;min-height:0;display:flex}.editor-page .editor-toolbar{flex-wrap:wrap;flex:none;gap:7px}.editor-page .tool-group{flex-wrap:wrap}.editor-page .canvas-stage{aspect-ratio:auto;flex:auto;width:100%;height:auto;min-height:360px;margin:12px 0}.editor-page .svg-wrap{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}.editor-page .editor-bottom{flex:none}.canvas-stage{touch-action:none;overscroll-behavior:contain}.svg-wrap{transform-origin:50%;transition:none!important}.canvas-zoom-hint{z-index:3;color:#74877b;pointer-events:none;background:#ffffffd9;border:1px solid #dce8df;border-radius:5px;padding:4px 6px;font:9px DM Mono,monospace;position:absolute;bottom:8px;left:10px}@media (max-width:720px){.top-actions{justify-content:flex-end;display:flex}.workspace-status{display:none}.main.with-sidebar,.main.sidebar-is-collapsed{padding-left:0}.app-shell.sidebar-collapsed .sidebar{width:100%;height:54px;padding:8px 12px}.sidebar-toggle{opacity:1;visibility:visible;pointer-events:auto;border-radius:8px;width:42px;height:34px;margin-left:auto;position:static;top:auto;right:auto;transform:none}.sidebar:hover .sidebar-toggle,.sidebar:focus-within .sidebar-toggle{transform:none}.sidebar-toggle:focus-visible{transform:none}.app-shell.sidebar-collapsed .sidebar-toggle{justify-content:center;padding:0}.app-shell.sidebar-collapsed .project-mini,.app-shell.sidebar-collapsed .sidebar nav,.app-shell.sidebar-collapsed .back-projects{display:none}.back-projects{width:auto;margin:0 0 10px;padding:7px 10px}.app-shell.sidebar-collapsed .editor-layout.glyph-list-collapsed{display:block}.fullscreen-toggle{padding:6px 8px}.canvas-zoom-hint{font-size:8px}.editor-page{height:auto;min-height:0;padding:25px 15px 30px;display:block}.editor-page .editor-layout{min-height:0;display:block}.editor-page .glyph-sidebar{margin-bottom:12px;display:flex}.editor-page .glyph-sidebar.collapsed{height:50px}.editor-page .editor-workspace{min-height:0}.editor-page .canvas-stage{width:100%;height:min(82vw,70vh);min-height:320px}}.workspace-page,.home-page,.setup-page,.account-page,.account-auth-page,.chinese-setup,.scan-import-shell{width:100%;max-width:none;margin-left:0;margin-right:0}.workspace-page,.home-page,.setup-page,.account-page,.chinese-setup,.scan-import-shell{min-height:calc(100vh - 78px)}.account-auth-page{min-height:100vh}.home-page{padding-left:clamp(22px,3vw,54px);padding-right:clamp(22px,3vw,54px)}.workspace-page{padding-left:clamp(20px,3vw,48px);padding-right:clamp(20px,3vw,48px)}.setup-page,.account-page,.chinese-setup{padding-left:clamp(20px,4vw,64px);padding-right:clamp(20px,4vw,64px)}.scan-import-shell{padding-left:clamp(12px,2vw,32px);padding-right:clamp(12px,2vw,32px)}.scan-pdf-panel{width:100%;max-width:none}.panel-eyebrow,.eyebrow,.section-kicker,.orbit-label{display:none!important}.home-footer>span:first-child{display:none}.scan-sidebar-character-picker{border-top:1px solid #e8ede8;margin-top:13px;padding-top:13px}.scan-page-list{max-height:none;position:static;overflow:visible}.scan-grid-size-label{color:#7c8c81;margin-bottom:9px;font-size:10px;display:block}.scan-sidebar-character-picker .scan-character-nav{grid-template-columns:1fr 1fr;gap:7px;margin:0 0 12px;display:grid}.scan-sidebar-character-picker .scan-character-nav>label{grid-area:1/1/auto/-1;min-width:0}.scan-sidebar-character-picker .scan-character-nav>button:first-child{grid-area:2/1}.scan-sidebar-character-picker .scan-character-nav>button:last-child{grid-area:2/2}.scan-sidebar-character-picker .scan-character-nav .secondary-btn{min-height:40px;font-size:12px}.scan-sidebar-character-picker .scan-character-nav .scan-character-list{width:100%;height:auto;max-height:min(62vh,560px);padding:5px 7px;font-size:13px;overflow-y:auto}.scan-sidebar-character-picker .scan-character-list option{padding:5px 7px}.scan-sidebar-character-picker .scan-cell-chips{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));align-content:start;gap:7px;min-height:210px;max-height:none;padding:10px 2px 3px;display:grid;overflow:visible}.scan-sidebar-character-picker .scan-cell-chips button{place-items:center;width:100%;min-width:40px;height:46px;font-size:25px;line-height:1.2;display:grid;overflow:visible}.template-settings-panel{align-content:start;gap:13px;display:grid}.template-settings-panel .panel-title{margin-bottom:3px}.template-settings-panel .field-label{margin-bottom:0}.template-dimensions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.template-background-control{background:#f8fbf8;border:1px dashed #cfddd1;border-radius:10px;gap:8px;padding:12px;display:grid}.template-background-control>strong{color:#53665a;font-size:11px}.template-background-control>div{align-items:center;gap:10px;display:flex}.template-background-control .secondary-btn{padding:9px 11px;font-size:11px}.template-background-control small,.template-dimensions-note{color:#829087;font-size:10px;line-height:1.6}.template-settings-panel .info-box{margin:2px 0}.template-page .template-layout{grid-template-columns:minmax(320px,380px) minmax(0,1fr)}.template-page .template-preview{min-width:0}.charset-table-head,.charset-table-row{grid-template-columns:60px 1fr 1fr 1fr .8fr 62px}.glyph-delete-btn{color:#a9533d;cursor:pointer;background:#fff8f5;border:1px solid #efdbd3;border-radius:7px;justify-self:start;padding:7px 10px;font-size:10px}.glyph-delete-btn:disabled{opacity:.55;cursor:wait}@media (max-width:800px){.template-page .template-layout{grid-template-columns:1fr}.scan-page-list,.scan-sidebar-character-picker .scan-cell-chips{max-height:none;overflow:visible}.charset-table-head{display:none}.charset-table-row{grid-template-columns:42px 1fr 1fr 1fr 58px;gap:8px}.charset-table-row>span:nth-child(4){grid-column:2/4}.charset-table-row>span:nth-child(5){display:none}.glyph-delete-btn{grid-area:1/5/span 2}}@media (max-width:600px){.workspace-page,.home-page,.setup-page,.account-page,.chinese-setup,.scan-import-shell{min-height:calc(100vh - 62px)}.scan-sidebar-character-picker .scan-cell-chips{grid-template-columns:repeat(auto-fill,minmax(42px,1fr));min-height:190px;max-height:none;overflow:visible}.scan-sidebar-character-picker .scan-cell-chips button{height:48px;font-size:26px}}.account-auth-page{position:relative}.auth-icp-link{left:50%;bottom:max(10px, env(safe-area-inset-bottom));color:#89938c;text-align:center;white-space:nowrap;font-size:12px;line-height:1.5;text-decoration:none;position:absolute;transform:translate(-50%)}.auth-icp-link:hover{color:#52695c;text-decoration:underline}:root{--ink:#202823;--muted:#737c73;--green:#285b47;--green-2:#47775b;--line:#e2ded3;--paper:#fffdf8;--orange:#b95e48;--page:#f5f3ec;--panel:#fffdf8;--shadow-soft:0 18px 55px #2f352712;color:var(--ink);background:var(--page);font-family:Noto Sans SC,Microsoft YaHei UI,PingFang SC,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}body{background:var(--page);color:var(--ink)}button,input,textarea,select{font:inherit}button:focus-visible{outline-offset:2px;outline:3px solid #a9533d47}a:focus-visible{outline-offset:2px;outline:3px solid #a9533d47}input:focus-visible{outline-offset:2px;outline:3px solid #a9533d47}textarea:focus-visible{outline-offset:2px;outline:3px solid #a9533d47}select:focus-visible{outline-offset:2px;outline:3px solid #a9533d47}.app-shell{background:var(--page)}.main{min-width:0}.main.with-sidebar{padding-left:248px}.main.with-sidebar.sidebar-is-collapsed{padding-left:76px}.topbar{height:72px;color:var(--ink);border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#faf9f4f0;gap:clamp(18px,3vw,42px);padding-inline-start:clamp(20px,3vw,48px);padding-inline-end:clamp(20px,3vw,48px)}.main:not(.with-sidebar) .topbar{padding-inline-start:clamp(20px,5vw,76px);padding-inline-end:clamp(20px,5vw,76px)}.brand{color:var(--ink);letter-spacing:-.04em;gap:11px;font-size:17px}.brand-mark{background:var(--green);color:#faf8ee;border-radius:50%;width:34px;height:34px;font-family:Noto Serif SC,Songti SC,serif;font-size:20px;font-style:normal;box-shadow:inset 0 0 0 1px #ffffff3d}.brand-accent{color:var(--orange)}.crumb{color:#6f776f;gap:11px;font-size:12px}.crumb-home{color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.crumb strong{color:var(--ink);font-weight:600}.top-actions{gap:12px;font-family:inherit}.workspace-status{color:#798078}.status-dot{background:#64856a;box-shadow:0 0 0 4px #e8ede4}.guest-actions{align-items:center;gap:8px;display:flex}.guest-actions button{color:#536451;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;min-height:38px;padding:0 14px;font-size:12px}.guest-actions button:hover{background:#eeeee5}.guest-actions .guest-register{color:#315b47;background:#fffefa;border-color:#d8ddd1}.guest-actions .guest-register:hover{background:#f4f4ec;border-color:#b5c2af}.top-account-menu{font-family:inherit;position:relative}.top-account-menu summary{border:1px solid var(--line);color:#4d564d;cursor:pointer;background:#fffefa;border-radius:999px;align-items:center;gap:9px;min-height:40px;padding:4px 11px 4px 5px;list-style:none;display:flex}.top-account-menu summary::-webkit-details-marker{display:none}.account-avatar-small{width:29px;height:29px;color:var(--green);background:#e9eee5;border-radius:50%;place-items:center;font-weight:700;display:grid}.account-email{text-overflow:ellipsis;white-space:nowrap;max-width:190px;font-size:12px;overflow:hidden}.menu-chevron{color:#8b9188}.top-account-popover{z-index:30;border:1px solid var(--line);background:var(--panel);width:210px;box-shadow:var(--shadow-soft);border-radius:14px;padding:7px;position:absolute;top:calc(100% + 8px);right:0}.top-account-popover button{color:#39433a;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;width:100%;padding:10px 11px;font-size:13px}.top-account-popover button:hover{background:#f2f2e9}.top-account-popover .logout-action{border-top:1px solid var(--line);color:#9b4c3a;border-radius:0 0 8px 8px;margin-top:5px}.fullscreen-toggle{border-color:var(--line);color:#5e6d60;font:inherit;background:#fffefa;border-radius:999px;padding:8px 12px;font-size:11px}.fullscreen-toggle:hover{color:var(--green);background:#eff1e8}.sidebar{background:#eeeee5;border-right:1px solid #dfded3;width:248px;padding:24px 17px 18px;top:72px}.project-mini{background:#f8f7f0;border-color:#e1e0d6;border-radius:12px;margin:0 22px 14px 0}.project-avatar{background:var(--green);border-radius:50%;font-family:Noto Serif SC,serif;font-style:normal}.project-mini small{letter-spacing:0;text-transform:none;color:#85877e}.project-mini strong{color:#313a32}.back-projects{color:#526451;background:#f8f7f0;border-color:#deddd2;margin:0 0 24px;padding:9px 11px;font-family:inherit;font-size:12px}.back-projects>span:first-child{background:#e9e9dc}.back-projects:hover{background:#fffefa;border-color:#bdc8b7}.side-label{color:#8b8b7e;letter-spacing:.08em;padding-left:12px;font-family:inherit;font-size:10px;font-weight:600;line-height:1.4}.side-item{color:#697268;border-radius:9px}.side-item:hover{background:#e5e7dc}.side-item.active{color:#294c3a;background:#dce5d8;box-shadow:inset 3px 0 #a9533d}.side-number{color:#a5a79b}.side-item.active .side-number{color:var(--orange)}.side-icon{color:#627565}.side-copy strong{font-size:12px}.side-copy small{color:#92958a}.sidebar-toggle{color:#536350;background:#f8f7f0;border-color:#d8d8cc}.sidebar-toggle:hover{background:#fffefa;border-color:#b6c2b1}.home-page{padding:34px clamp(22px,4vw,64px) 42px}.home-hero{color:#26332a;background:linear-gradient(112deg,#eee9dc 0%,#f4f0e5 57%,#e9e7d9 100%);border:1px solid #e7dfce;border-radius:5px;align-items:center;min-height:290px;padding:clamp(32px,5vw,64px);box-shadow:inset 0 0 0 7px #ffffff38}.home-hero:before{content:"";pointer-events:none;border:1px solid #69694f21;position:absolute;top:16px;bottom:16px;left:16px;right:16px}.home-hero:after{background:radial-gradient(at 78% 35%,#ffffff85,#0000 40%)}.home-hero-copy{z-index:1;max-width:680px;position:relative}.home-kicker{color:#756e59;letter-spacing:.12em;align-items:center;gap:9px;font-size:12px;display:inline-flex}.home-kicker:before{content:"";background:var(--orange);width:22px;height:1px}.home-hero h1{color:#25352b;letter-spacing:.02em;margin:22px 0 17px;font:500 clamp(33px,4.5vw,56px)/1.22 Noto Serif SC,Songti SC,serif}.home-hero h1 em{color:#a5533d;font:inherit}.home-hero p{color:#687267;max-width:500px;font-size:14px;line-height:1.9}.home-writing{color:#48624e;opacity:.82;justify-content:center;align-items:center;gap:4px;width:min(40%,430px);height:78%;display:flex;position:absolute;top:50%;right:8%;transform:translateY(-50%)}.home-writing svg{filter:drop-shadow(1px 2px #313d2b14);width:31%;height:76%;overflow:visible}.home-writing svg:nth-child(2){color:#a9533d;margin-top:36px}.home-writing svg:nth-child(3){margin-top:-26px}.home-writing-empty-mark{border:1px solid #4b5b442e;border-radius:50% 47% 49% 45%;width:54%;height:74%;transform:rotate(-13deg)}.home-writing-empty-mark:after{content:"";background:#4b5b4438;width:68%;height:1px;margin:50% auto;display:block;transform:rotate(-25deg)}.section-head{align-items:center;margin:47px 1px 18px}.section-head h2{letter-spacing:.03em;margin:0 0 6px;font:500 25px/1.4 Noto Serif SC,Songti SC,serif}.section-head p{color:#7e8177;margin:0;font-size:12px}.primary-btn{background:var(--green);border-radius:7px;padding:12px 17px;font-size:12px;box-shadow:0 4px 10px #315b471f}.primary-btn:hover{background:#274b39;box-shadow:0 7px 18px #315b472b}.secondary-btn{color:#405b47;background:#fffefa;border-color:#d8ddd1;border-radius:7px}.secondary-btn:hover{background:#f8f8f0;border-color:#aebca9}.project-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.project-card,.new-card{background:var(--panel);border-color:#e4e1d7;border-radius:5px;min-height:245px;box-shadow:0 5px 20px #373b2b08}.project-card{transition:transform .2s,box-shadow .2s}.project-card:hover{transform:translateY(-3px);box-shadow:0 13px 28px #373b2b17}.card-art{color:#526d55;background:linear-gradient(135deg,#ecece1,#f7f4e9);height:158px}.card-glyph-preview{color:#526d55;filter:drop-shadow(1px 2px #313d2b14);width:102px;height:116px}.card-glyph-placeholder{color:#7d8476;border:1px solid #4b5b4436;place-items:center;width:92px;height:108px;display:grid}.card-glyph-placeholder span{writing-mode:vertical-rl;letter-spacing:.15em;font-size:12px}.card-art i{color:#687b64;background:#fffefa;font-family:inherit;font-size:10px}.card-body h3{color:#303a31;font-size:14px}.card-body p{color:#898b81;font-size:11px}.delete-link{color:#9a8e83}.delete-link:hover{color:#a9533d}.new-card{color:#768071;background:0 0;border-color:#cfcec0;gap:8px}.new-card:hover{background:#f8f7f0;border-color:#9fab97}.new-card span{color:var(--orange)}.new-card strong{color:#4c604d}.empty-card,.loading-card{background:var(--panel);box-shadow:var(--shadow-soft);border-color:#e4e1d7;border-radius:5px}.empty-art{background:#eeeee4;border-radius:4px}.empty-art .empty-art-mark{background:0 0;border:1px solid #4b5b4447;border-radius:51% 49% 45% 55%;width:64px;height:78px;transform:rotate(-9deg)}.empty-art .empty-art-mark:after{content:"";background:#4b5b4459;width:1px;height:56px;margin:10px auto;display:block;transform:rotate(22deg)}.empty-card h3{font:500 20px Noto Serif SC,Songti SC,serif}.empty-card p{color:#7f8278;font-size:13px}.home-footer{border-top:1px solid #e3e1d7;padding-top:36px}.setup-page,.workspace-page,.account-page,.chinese-setup,.scan-import-shell{color:var(--ink)}.setup-page{padding-top:34px}.back-link{border:1px solid var(--line);background:var(--panel);color:#536451;border-radius:7px;align-items:center;min-height:38px;padding:0 12px;display:inline-flex}.back-link:hover{color:var(--green);border-color:#b7c3af}.chinese-setup-head{padding-top:44px}.chinese-setup-head h1,.setup-intro h1{color:#28372c;letter-spacing:.015em;font-family:Noto Serif SC,Songti SC,serif;font-weight:500}.chinese-setup-head h1 em,.setup-intro h1 em{color:var(--orange);font-family:inherit;font-style:normal}.chinese-setup-head p,.setup-intro>p{color:#747b71}.unicode-badge{background:#eeece1;border-color:#e2dfd3}.unicode-badge>span{color:#365642;font-family:KaiTi,STKaiti,serif}.chinese-setup-grid{gap:17px}.panel{background:var(--panel);border-color:#e3e1d7;border-radius:6px;box-shadow:0 5px 20px #373b2b08}.charset-source-panel,.extraction-panel,.chinese-project-meta{padding:22px}.panel h3{color:#344236;font-size:15px}.category-row button,.import-btn{color:#586651;background:#f8f7f0;border-color:#deded2;border-radius:6px}.extracted-chars{background:#faf9f3;border-color:#e6e3d8}.extracted-chars>span{color:#405a45;background:#fffefa;border-color:#e5e2d7;font-family:KaiTi,STKaiti,Noto Serif SC,serif}.count-badge{color:#8a563f;background:#eee9db}.text-input,.preview-textarea,select.text-input{color:#2c352d;background:#fffefa;border-color:#dcded3;border-radius:7px}.text-input:focus,.preview-textarea:focus{border-color:#8da38d;box-shadow:0 0 0 3px #5174541f}.field-label{color:#5d695d}.template-preview,.paper-wrap,.paper-placeholder{background-color:#eeece2}.editor-page{height:calc(100vh - 72px);padding-top:20px}.editor-layout{gap:14px}.glyph-sidebar,.editor-workspace{background:var(--panel);border-color:#e0ded3;border-radius:6px}.glyph-sidebar{padding:14px}.glyph-row{border-color:#eeece3;border-radius:5px}.glyph-row:hover{background:#f7f6ef}.glyph-row.active{background:#edf1e8;border-color:#a7b6a2}.glyph-char{color:#314a38;font-family:KaiTi,STKaiti,Noto Serif SC,serif}.editor-toolbar{border-bottom-color:#e9e6db}.text-tool,.glyph-list-toggle{color:#5f6d5e;background:#fffefa;border-color:#dfded4;border-radius:6px}.text-tool:hover,.glyph-list-toggle:hover{background:#f1f1e8}.text-tool.active{color:#315b47;background:#e9eee4;border-color:#bac8b5}.canvas-stage{background:#f2f0e7;border-color:#dfded4;border-radius:5px}.editor-bottom{border-top-color:#e9e6db}.canvas-zoom-hint{color:#777a70;background:#fffefaeb;border-color:#e2dfd4}.editor-page .anchor,.editor-page .handle{vector-effect:non-scaling-stroke}.scan-import-shell{padding-top:18px}.scan-import-tabs{border-bottom-color:#e0ded3}.scan-import-tabs button{color:#747b71}.scan-import-tabs button.active{color:var(--green);border-bottom-color:var(--orange)}.scan-import-heading h2,.scan-pdf-panel h2{color:#29372d;font:500 24px/1.35 Noto Serif SC,Songti SC,serif}.scan-import-heading p,.scan-pdf-panel>p{color:#747b71}.scan-progress{color:#496849;background:#e9eee4}.scan-import-layout{grid-template-columns:minmax(260px,310px) minmax(0,1fr);gap:18px}.scan-page-list,.scan-adjust-card,.scan-results,.scan-pdf-panel{background:var(--panel);border:1px solid #e3e1d7;border-radius:6px;box-shadow:0 5px 20px #373b2b08}.scan-page-buttons>button{border-color:#e6e4da;border-radius:6px}.scan-page-buttons>button.selected{box-shadow:inset 3px 0 var(--orange);background:#f0f2e9;border-color:#9eaf98}.scan-instruction{color:#687366;background:#f1f1e9;border-radius:5px}.scan-corner-svg,.scan-cell-svg{background:#efeee7;border-color:#dbded3;border-radius:5px}.scan-character-nav .text-input{min-height:40px}.scan-sidebar-character-picker .scan-cell-chips button{color:#485f49;background:#fffefa;border-color:#dfdfd4;border-radius:5px;font-family:KaiTi,STKaiti,serif}.scan-sidebar-character-picker .scan-cell-chips button.selected{color:#315b47;background:#e9eee4;border-color:#b4c2aa}.scan-batch-footer{background:#f0f1e9;border-color:#e0e4d8;border-radius:6px}.auth-main{background:#f3f1e9;padding:0!important}.auth-main>.topbar{background:#faf9f4;height:66px;padding-inline-start:clamp(20px,5vw,76px);padding-inline-end:clamp(20px,5vw,76px)}.auth-main>.topbar .crumb,.auth-main>.topbar .top-actions{display:none}.account-auth-page{background:#f3f1e9;grid-template-columns:minmax(0,1fr) minmax(420px,.92fr);align-items:stretch;gap:0;width:100%;max-width:none;min-height:calc(100vh - 66px);margin:0;padding:0}.auth-decoration{color:#f4f0e4;background:radial-gradient(at 78% 22%,#bfab7533,#0000 35%),#2e4c3a;justify-content:center;min-height:calc(100vh - 66px);padding:clamp(42px,8vw,120px);overflow:hidden}.auth-decoration:after{content:"";pointer-events:none;border:1px solid #efe7ce2e;position:absolute;top:24px;bottom:24px;left:24px;right:24px}.auth-mark{z-index:1;color:#31513d;background:#e7e4d4;border-radius:50%;width:42px;height:42px;font-family:Noto Serif SC,Songti SC,serif;font-size:22px;position:relative}.auth-calligraphy{z-index:0;color:#ebe5d01a;font:400 clamp(220px,34vw,480px)/1 KaiTi,STKaiti,Noto Serif SC,serif;top:50%;right:7%;transform:translateY(-55%)rotate(-8deg)}.auth-decoration p{z-index:1;color:#f2eddf;letter-spacing:.04em;max-width:560px;margin:34px 0 10px;font:400 clamp(27px,3.2vw,43px)/1.55 Noto Serif SC,Songti SC,serif;position:relative}.auth-decoration small{z-index:1;color:#c2cabb;letter-spacing:.08em;font-size:12px;position:relative}.auth-card{background:#fffefa;border:1px solid #e2dfd4;border-radius:5px;place-self:center;width:min(100% - 72px,470px);margin:45px 0 70px;padding:clamp(28px,4vw,48px);box-shadow:0 18px 60px #32322414}.auth-card h1{color:#29372e;letter-spacing:.02em;margin:8px 0;font:500 30px/1.4 Noto Serif SC,Songti SC,serif}.auth-lede{color:#7c8177;margin-bottom:27px;font-size:13px;line-height:1.8}.auth-card .field-label{color:#59665b;margin:18px 0;font-size:12px}.auth-card .text-input{min-height:46px;margin-top:9px;padding:12px 13px}.auth-card .primary-btn.full{width:100%;min-height:46px;margin-top:4px}.auth-links{flex-wrap:wrap;gap:8px}.auth-links button{color:#667563;padding-inline-start:0;padding-inline-end:0;font-size:12px}.auth-links button:hover{color:var(--orange)}.auth-security-note{color:#98998e}.auth-icp-link{color:#85877c;font-size:11px;bottom:14px}.account-page{padding-top:34px}.account-heading h1{color:#29372e;font:500 30px/1.4 Noto Serif SC,Songti SC,serif}.account-overview,.account-action,.order-card,.admin-order,.payment-summary,.payment-qr-panel,.plan-card,.resource-purchase-card,.admin-form,.settings-card,.admin-user-card{background:var(--panel);border:1px solid #e3e1d7;border-radius:6px;box-shadow:0 5px 20px #373b2b08}.account-avatar{background:var(--green)}.payment-amount,.plan-price{color:var(--green)}.admin-tabs button.active{color:var(--green);border-color:var(--orange)}.order-status{border-radius:4px}.account-warning,.account-error,.account-success{border-radius:5px}@media (max-width:900px){.home-writing{opacity:.35;right:4%}.auth-decoration{padding:50px}.account-auth-page{grid-template-columns:minmax(0,.9fr) minmax(390px,1.1fr)}.auth-card{width:calc(100% - 44px)}}@media (max-width:720px){.topbar{height:62px;padding-inline-start:16px!important;padding-inline-end:16px!important}.main.with-sidebar,.main.sidebar-is-collapsed{padding-left:0}.sidebar{top:62px}.account-email{max-width:120px}.home-page{padding:20px 16px 30px}.home-hero{min-height:260px;padding:30px 24px}.home-hero:before{top:9px;bottom:9px;left:9px;right:9px}.home-hero h1{max-width:520px;font-size:clamp(30px,8vw,40px)}.home-hero p{max-width:90%;font-size:12px}.home-writing{opacity:.2;top:74%;right:5%}.section-head{flex-wrap:wrap;align-items:flex-start;gap:14px}.section-head .primary-btn{margin-left:auto}.account-auth-page{grid-template-columns:1fr;min-height:calc(100vh - 62px)}.auth-decoration{min-height:220px;padding:28px 26px}.auth-decoration:after{top:10px;bottom:10px;left:10px;right:10px}.auth-decoration p{margin:16px 0 5px;font-size:24px}.auth-calligraphy{font-size:190px;top:45%;right:5%}.auth-card{width:min(100% - 32px,520px);margin:20px auto 66px;padding:27px 24px}.auth-icp-link{bottom:12px}.scan-import-layout{grid-template-columns:1fr}.scan-page-list{position:static}.editor-page{height:auto;min-height:0}.account-page{padding:26px 16px 60px}}@media (max-width:480px){.brand{font-size:15px}.brand-mark{width:30px;height:30px}.section-head{display:grid}.section-head .primary-btn{width:100%;margin:0}.project-grid{grid-template-columns:1fr}.empty-card{text-align:center;gap:22px;padding:24px 17px}.empty-art{width:170px;height:112px}.scan-import-heading{display:grid}.scan-import-heading h2{font-size:21px}.scan-character-nav{flex-wrap:wrap}}
