:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f4f5f4;color:#232524;font-synthesis:none;text-rendering:geometricPrecision}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#f4f5f4}.app-fallback{min-height:100vh;display:grid;place-items:center;padding:24px;background:#f4f5f4}.app-fallback>div{width:min(460px,100%);padding:22px;border:1px solid #efc0ad;border-radius:8px;background:#fff8f4;color:#232524}.app-fallback h1{margin-bottom:18px}.app-fallback strong{display:block;color:#9a351f;font-size:18px}.app-fallback p{color:#6f7673;font-weight:700;line-height:1.45}.app-fallback button{height:36px;border:1px solid #9a351f;border-radius:8px;padding:0 14px;background:#9a351f;color:#fff;cursor:pointer;font-weight:800}button,input,select,textarea{font:inherit}button{border:0}.app-shell{min-height:100vh;display:grid;grid-template-rows:66px 1fr;position:relative}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:10px 18px;border-bottom:1px solid #d8dddb;background:#fbfbfa}.brand-block,.top-actions,.section-title,.button-row,.panel-heading,.glyph-label,.glyph-meta,.stat-row,.glyph-editor-head,.metrics-readout,.toggle-row,.coverage-note,.kerning-item,.quality-item,.quality-pass,.save-status,.icon-button,.tool-button,.ghost-button{display:flex;align-items:center}.brand-block{gap:11px;min-width:230px}.brand-mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid #1f2a27;border-radius:8px;background:#232524;color:#fff}h1,h2{margin:0;letter-spacing:0}h1{font-size:17px;line-height:1.15}h2{font-size:15px}.brand-block span,.panel-heading span,.glyph-label span,.glyph-meta,.stat-row span,.warning-item small{color:#6f7673;font-size:12px}.top-actions{gap:8px;flex-wrap:wrap;justify-content:flex-end}.icon-button,.tool-button,.ghost-button{height:36px;gap:7px;border-radius:8px;padding:0 12px;background:#eef0ef;color:#232524;cursor:pointer;border:1px solid #d9dddb;white-space:nowrap}.icon-button:hover,.tool-button:hover,.ghost-button:hover{background:#e4e8e6}.icon-button.primary{background:#2f6f5f;border-color:#2f6f5f;color:#fff}.tool-button.accent{background:#26312f;color:#fff;border-color:#26312f}.tool-button.danger{background:#fff4ee;color:#9a351f;border-color:#efc0ad}.tool-button.danger:hover{background:#ffe9dd}button:disabled{opacity:.45;cursor:not-allowed}.hidden-input{display:none}.workspace{display:grid;grid-template-columns:58px minmax(420px,1fr) minmax(320px,410px);min-height:0}.preview-panel{background:#fbfbfa;padding:16px;overflow:auto}.side-panel{background:#fbfbfa}.preview-panel{grid-column:3;border-left:1px solid #d8dddb}.glyph-panel{grid-column:2;min-width:0;padding:16px;overflow:auto}.tool-rail{grid-column:1;grid-row:1;display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 6px;overflow:auto;border-right:1px solid #d8dddb;background:#fbfbfa}.tool-rail-group{width:100%;display:grid;justify-items:center;gap:5px;padding:8px 0;border-top:1px solid #e1e5e3}.tool-rail-group:first-child{border-top:0;padding-top:0}.tool-rail-button{width:42px;height:42px;display:grid;place-items:center;border:1px solid transparent;border-radius:6px;background:transparent;color:#3f4643;cursor:pointer}.tool-rail-button:hover{border-color:#cfd7d3;background:#f1f3f2;color:#232524}.tool-rail-button.is-active{border-color:#2f6f5f;background:#e9f4f0;color:#2f6f5f}.tool-drawer{position:fixed;top:82px;right:auto;left:72px;bottom:auto;z-index:34;display:none;width:min(382px,calc(100vw - 96px));max-height:calc(100vh - 16px);padding:14px;overflow:auto;border:1px solid #cfd7d3;border-radius:8px;background:#fbfbfa;box-shadow:0 20px 46px #23252433}.tool-drawer.is-dragging{-webkit-user-select:none;user-select:none}.tool-drawer.is-open{display:block}.tool-drawer-head{position:sticky;top:-14px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-14px -14px 14px;padding:13px 14px;border-bottom:1px solid #d8dddb;background:#f4f5f4;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.tool-drawer-head div{min-width:0;display:grid;gap:2px}.tool-drawer-head span{color:#6f7673;font-size:11px;font-weight:900;text-transform:uppercase}.tool-drawer-head strong{min-width:0;overflow:hidden;color:#232524;font-size:15px;text-overflow:ellipsis;white-space:nowrap}.tool-drawer.is-dragging .tool-drawer-head{cursor:grabbing}.tool-drawer-head-actions{display:inline-flex;align-items:center;gap:8px;flex:0 0 auto}.tool-drawer-close{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border:1px solid #d8dddb;border-radius:8px;background:#fff;color:#232524;cursor:pointer}.tool-drawer-close:hover{background:#e8ecea}.tool-drawer .tool-panel{margin-bottom:0;padding:0;border:0;background:transparent}.tool-drawer .tool-panel-toggle{padding-bottom:12px;border-bottom:1px solid #e1e5e3}.tool-drawer .tool-panel-toggle>svg{display:none}.spacing-board{max-width:1180px;margin:0 auto 16px;padding:14px;border:1px solid #d8dddb;border-radius:8px;background:#fff}.spacing-board-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.spacing-board-head div{min-width:0}.spacing-board-head span{display:block;min-width:0;margin-top:3px;overflow:hidden;color:#6f7673;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.spacing-board-controls{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.zoom-control{height:34px;display:inline-flex;align-items:center;overflow:hidden;border:1px solid #d8dddb;border-radius:8px;background:#fff}.zoom-control button{height:100%;min-width:34px;display:grid;place-items:center;border:0;border-right:1px solid #e5e9e7;background:transparent;color:#232524;cursor:pointer;font:inherit;font-size:12px;font-weight:900}.zoom-control button:last-child{border-right:0}.zoom-control button:hover:not(:disabled){background:#f4f8f6;color:#2f6f5f}.zoom-control button:disabled{opacity:.38;cursor:not-allowed}.zoom-control .zoom-readout{min-width:52px;padding:0 8px}.guide-control-row{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin:-2px 0 12px}.guide-actions,.guide-chip-list{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.guide-actions>button{height:30px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border:1px solid #d8dddb;border-radius:8px;background:#fff;color:#232524;cursor:pointer;padding:0 9px;font-size:11px;font-weight:900}.guide-actions>button:hover{border-color:#9db0aa;background:#f4f8f6}.guide-actions .guide-lock-button.is-active{border-color:#2f6f5f;background:#e9f4f0;color:#2f6f5f}.guide-actions>button:disabled,.guide-chip button:disabled{opacity:.42;cursor:not-allowed}.guide-actions .zoom-control{height:30px}.guide-actions .zoom-control button{min-width:32px}.guide-actions .zoom-control .zoom-readout{min-width:50px;padding:0 7px}.guide-chip-list{min-width:0;justify-content:flex-end}.guide-chip{min-width:0;height:30px;display:inline-flex;align-items:center;gap:6px;max-width:170px;padding:0 5px 0 9px;border:1px solid #b7dfe2;border-radius:8px;background:#f0fbfb;color:#006c72;font-size:11px;font-weight:900}.guide-chip b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.guide-chip em{color:#4b777a;font-style:normal}.guide-chip button{width:22px;height:22px;display:grid;place-items:center;flex:0 0 auto;border-radius:6px;background:transparent;color:#4b777a;cursor:pointer}.guide-chip button:hover{background:#d9f3f4;color:#9a351f}.segmented-button,.segmented-control button,.context-control input{height:32px;border:1px solid #d8dddb;border-radius:8px;background:#f6f7f6;color:#232524;font-size:12px;font-weight:800}.segmented-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 10px;cursor:pointer}.segmented-button.is-active,.segmented-control button.is-active{border-color:#2f6f5f;background:#2f6f5f;color:#fff}.segmented-control{display:inline-grid;grid-template-columns:repeat(3,38px);gap:4px;padding:3px;border-radius:10px;background:#eef0ef}.segmented-control button{height:26px;border-radius:7px;cursor:pointer}.context-control{display:inline-flex;align-items:center;gap:5px;min-width:0}.context-control input{width:44px;padding:0 7px;text-align:center;outline:none}.context-control input:focus{border-color:#2f6f5f;box-shadow:0 0 0 3px #2f6f5f21}.context-control strong{min-width:28px;height:32px;display:grid;place-items:center;border-radius:8px;background:#232524;color:#fff;font-size:13px}.spacing-board-grid{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(380px,1.18fr);gap:14px;align-items:stretch}.spacing-text-stack{display:grid;gap:12px}.panel-section{padding:14px;border:1px solid #d8dddb;border-radius:8px;background:#fff;margin-bottom:14px}.section-title{gap:8px;font-weight:700;font-size:13px;margin-bottom:12px}.tool-visibility-bar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:7px;margin-bottom:14px}.tool-visibility-bar select,.tool-visibility-bar button{height:32px;border:1px solid #d8dddb;border-radius:8px;background:#fff;color:#232524;font-size:12px;font-weight:800}.tool-visibility-bar select{min-width:0;padding:0 8px}.tool-visibility-bar button{padding:0 9px;cursor:pointer}.tool-panel-toggle{width:100%;justify-content:space-between;padding:0;background:transparent;color:#232524;cursor:pointer;text-align:left}.tool-panel-toggle:hover{color:#2f6f5f}.tool-panel.is-collapsed .tool-panel-toggle{margin-bottom:0}.tool-panel-title{min-width:0;display:inline-flex;align-items:center;gap:8px}.tool-panel-title>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drop-target{width:100%;min-height:96px;display:grid;place-items:center;gap:8px;border-radius:8px;border:1px dashed #96a09c;color:#32423d;background:#f5f8f6;cursor:pointer}.drop-target span{font-weight:700}.import-font-button{margin-top:10px}.stat-row{justify-content:space-between;height:34px;border-bottom:1px solid #eef0ef}.stat-row:last-child{border-bottom:0}.inline-error{margin-top:10px;padding:9px 10px;border-radius:8px;background:#fff4ee;color:#9a351f;border:1px solid #efc0ad;font-size:12px;line-height:1.35}.field-label,.metric-slider{display:grid;gap:8px;margin-bottom:12px;font-size:12px;font-weight:700;color:#4a514f}.field-label input,.field-label textarea{width:100%;border:1px solid #cdd4d0;border-radius:8px;background:#fff;color:#232524;outline:none;padding:10px 11px;resize:vertical}.pair-input{font-size:20px;font-weight:850;letter-spacing:0;text-align:center}.field-label input:focus,.field-label textarea:focus{border-color:#2f6f5f;box-shadow:0 0 0 3px #2f6f5f21}.field-label.compact{margin-top:14px}.toggle-row{gap:10px;align-items:flex-start;padding:10px;margin-bottom:12px;border:1px solid #d8dddb;border-radius:8px;background:#f7faf8;cursor:pointer}.toggle-row input{width:16px;height:16px;margin:2px 0 0;accent-color:#2f6f5f;flex:0 0 auto}.toggle-row span{min-width:0;display:grid;gap:2px}.toggle-row strong{color:#232524;font-size:12px}.toggle-row small{color:#6f7673;font-size:11px;line-height:1.35}.metric-slider span{display:flex;justify-content:space-between;align-items:center}.metric-slider strong{font-size:12px;color:#232524}.metric-slider input{width:100%;accent-color:#2f6f5f}.slider-control{display:grid;grid-template-columns:minmax(0,1fr) 76px;align-items:center;gap:9px}.metric-number{width:76px;height:32px;border:1px solid #cdd4d0;border-radius:8px;background:#fff;color:#232524;outline:none;padding:0 8px;text-align:right;font-size:12px;font-weight:800}.metric-number:focus{border-color:#2f6f5f;box-shadow:0 0 0 3px #2f6f5f21}.button-row{gap:8px}.button-row.dense{flex-wrap:wrap}.button-row.dense .tool-button{min-width:82px}.button-row .tool-button{flex:1;justify-content:center}.tool-button.full{width:100%;justify-content:center}.kerning-text-fix{margin-top:8px}.kerning-class-tools{display:grid;gap:8px;margin-top:10px}.kerning-danger-row{margin-top:8px}.mini-section-title{color:#6f7673;font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:0}.glyph-editor-head{gap:10px;padding-bottom:12px;border-bottom:1px solid #eef0ef;margin-bottom:12px}.glyph-editor-symbol{width:54px;height:54px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;border:1px solid #d8dddb;background:#f6f8f7;font-size:24px;font-weight:850}.glyph-editor-head div:last-child{min-width:0;display:grid;gap:3px}.glyph-editor-head strong{font-size:13px}.glyph-editor-head span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#6f7673;font-size:12px}.metrics-readout{justify-content:space-between;gap:8px;margin-bottom:12px}.metrics-readout span{min-width:0;display:grid;gap:2px;color:#6f7673;font-size:11px}.metrics-readout strong{color:#232524;font-size:13px}.spacing-card,.text-spacing-card{display:grid;gap:8px;margin-bottom:12px}.text-spacing-card{margin:0 0 12px}.spacing-board .spacing-card,.spacing-board .text-spacing-card{margin-bottom:0}.spacing-card-head{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#6f7673;font-size:11px;font-weight:900;text-transform:uppercase}.spacing-card-head strong{color:#232524;font-size:12px;text-transform:none}.spacing-svg-wrap,.text-spacing-scroll,.space-preview-box{border:1px solid #d8dddb;border-radius:8px;background:#fff}.spacing-svg-wrap{height:150px;overflow:auto;outline:none}.spacing-svg-wrap:focus-visible{border-color:#2f6f5f;box-shadow:0 0 0 3px #2f6f5f29}.spacing-board .spacing-svg-wrap,.spacing-board .text-spacing-scroll{height:232px}.spacing-svg-wrap svg{display:block;flex:0 0 auto}.spacing-svg-wrap.is-draggable svg{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.spacing-svg-wrap.is-dragging svg{cursor:grabbing}.spacing-svg-wrap.is-guide-dragging svg{cursor:ns-resize}.spacing-drag-target{cursor:grab}.spacing-svg-wrap.is-guide-locked .spacing-guide-hitarea,.spacing-svg-wrap.is-guide-locked .spacing-custom-guide-hitarea{cursor:default}.text-spacing-scroll{overflow-x:auto;overflow-y:hidden}.text-spacing-scroll svg{display:block;min-width:100%}.spacing-board .text-spacing-scroll{display:flex;align-items:center}.spacing-board .text-spacing-scroll svg{width:auto;height:100%}.spacing-svg-wrap path,.text-spacing-scroll path{fill:#222524}.spacing-grid-line{stroke:#e6eae8;stroke-width:1}.spacing-baseline{stroke:#d94848;stroke-width:1.2}.spacing-fixed-baseline{stroke:#d94848;stroke-width:.8;opacity:.22;stroke-dasharray:3 4}.spacing-capline{stroke:#2f6fd6;stroke-width:1;opacity:.7}.spacing-guide-line{pointer-events:none}.spacing-guide-line.is-active{stroke-width:2.2;opacity:1}.spacing-guide-hitarea{stroke:transparent;stroke-width:16;cursor:ns-resize;pointer-events:stroke}.spacing-guide-hitarea.baseline,.spacing-guide-hitarea.capline{stroke-linecap:round}.spacing-custom-guide{stroke:#0099a8;stroke-width:1;stroke-dasharray:6 4;opacity:.9;pointer-events:none}.spacing-custom-guide.is-active{stroke-width:2;opacity:1}.spacing-custom-guide-hitarea{stroke:transparent;stroke-width:14;cursor:ns-resize;pointer-events:stroke}.spacing-custom-guide-label{fill:#00727a;paint-order:stroke;stroke:#fff;stroke-width:3px;font-size:9px;font-weight:900;text-anchor:end;pointer-events:none}.spacing-origin-line{stroke:#2f6f5f;stroke-width:1.5}.spacing-bearing-line{stroke:#b7791f;stroke-width:1.2;stroke-dasharray:4 3}.spacing-advance-box{fill:#2f6f5f0d;stroke:#2f6f5f38;stroke-width:1}.spacing-kern-box{fill:#2f6f5f0b}.spacing-kern-box.negative{fill:#b7791f21}.spacing-alert.collision{fill:#d9484833}.spacing-alert.loose{fill:#b7791f2e}.text-spacing-scroll text{fill:#6f7673;font-size:10px;font-weight:800;text-anchor:middle}.spacing-readout{display:grid;grid-template-columns:repeat(auto-fit,minmax(54px,1fr));gap:6px}.spacing-readout span{min-width:0;padding:6px 7px;border-radius:7px;background:#f6f7f6;color:#515956;font-size:11px;font-weight:800;text-align:center}.space-preview-box{height:58px;display:grid;place-items:center}.space-preview-box span{height:24px;border-left:2px solid #2f6f5f;border-right:2px solid #2f6f5f;background:#2f6f5f12}.kerning-list{display:grid;gap:7px;margin-top:12px}.kerning-item{gap:7px}.kerning-item>button:first-child{min-width:0;height:34px;flex:1;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;border-radius:8px;border:1px solid #d8dddb;background:#fbfbfa;color:#232524;cursor:pointer}.kerning-item>button:first-child:hover{border-color:#9db0aa;background:#f4f8f6}.kerning-item strong{font-size:14px}.kerning-item span{color:#2f6f5f;font-size:12px;font-weight:800}.mini-delete{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;border:1px solid #d8dddb;background:#fff;color:#6f7673;cursor:pointer}.mini-delete:hover{color:#9a351f;background:#fff4ee;border-color:#efc0ad}.history-list{display:grid;gap:7px;margin-top:10px}.history-item{display:grid;grid-template-columns:minmax(0,1fr) 34px 34px;gap:7px;align-items:stretch}.history-main{min-width:0;display:grid;gap:2px;padding:8px 10px;border:1px solid #d8dddb;border-radius:8px;background:#fbfbfa;color:#232524;cursor:pointer;text-align:left}.history-main:hover{border-color:#9db0aa;background:#f4f8f6}.history-main strong,.history-main span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-main strong{font-size:12px}.history-main span{color:#6f7673;font-size:10px;font-weight:800}.muted-note{margin-top:12px;padding:9px 10px;border-radius:8px;background:#f6f7f6;color:#6f7673;font-size:12px;font-weight:700}.muted-note.compact{margin-top:0;padding:7px 9px;font-size:11px}.audit-score{display:flex;align-items:center;gap:12px;padding:12px;border-radius:8px;border:1px solid #d8dddb;background:#f6f7f6;margin-bottom:10px}.audit-score>strong{width:54px;height:54px;display:grid;place-items:center;flex:0 0 auto;border-radius:8px;background:#232524;color:#fff;font-size:24px;line-height:1}.audit-score.ready>strong{background:#2f6f5f}.audit-score.needs-work>strong{background:#b7791f}.audit-score.blocked>strong{background:#9a351f}.audit-score span{min-width:0;display:grid;gap:3px}.audit-score b{font-size:13px}.audit-score small{color:#6f7673;font-size:12px}.audit-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin-bottom:10px}.audit-metric{min-width:0;padding:8px;border-radius:8px;background:#f6f7f6;border:1px solid #e2e6e4}.audit-metric.warning{background:#fff9ed;border-color:#eed7af}.audit-metric.pass{background:#eef8f4;border-color:#bcd9d0}.audit-metric.error{background:#fff4ee;border-color:#efc0ad}.audit-metric span,.audit-metric strong{display:block}.audit-metric span{overflow:hidden;color:#6f7673;font-size:10px;font-weight:900;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.audit-metric strong{margin-top:2px;font-size:16px}.assistant-summary{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:8px;background:#eef8f4;color:#2f6f5f;margin-bottom:10px}.assistant-summary strong{font-size:20px}.assistant-summary.warning{background:#fff9ed;color:#9a6418;border:1px solid #eed7af}.assistant-summary span{display:inline-flex;align-items:baseline;gap:4px;font-size:12px;font-weight:800}.assistant-list{display:grid;gap:7px;margin-top:10px}.assistant-list.compact-list{margin-top:0}.assistant-item{min-width:0;display:flex;align-items:center;gap:8px;padding:8px 9px;border:1px solid #d8dddb;border-radius:8px;background:#fbfbfa;color:#232524;text-align:left}button.assistant-item{cursor:pointer}button.assistant-item:hover{border-color:#9db0aa;background:#f4f8f6}.assistant-item.warning{border-color:#eed7af;background:#fffaf1}.assistant-item.pass{border-color:#bcd9d0;background:#f1faf6}.assistant-item.pass svg{color:#2f6f5f}.assistant-item.error{border-color:#efc0ad;background:#fff4ee}.assistant-item>strong{min-width:30px;font-size:18px;text-align:center}.assistant-item>span{min-width:0;display:grid;gap:2px}.assistant-item b,.assistant-item span strong{font-size:12px}.assistant-item small{min-width:0;overflow:hidden;color:#6f7673;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.assistant-item em{min-width:0;overflow:hidden;color:#8a918e;font-size:10px;font-style:normal;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.audit-panel .assistant-item,.envato-check-panel .assistant-item{align-items:flex-start;padding:10px 12px}.audit-panel .assistant-item svg,.envato-check-panel .assistant-item svg{flex:0 0 auto;margin-top:3px}.audit-panel .assistant-item small,.audit-panel .assistant-item em,.envato-check-panel .assistant-item small{overflow:visible;line-height:1.35;text-overflow:clip;white-space:normal;word-break:break-word}.envato-check-panel .muted-note{line-height:1.4;overflow-wrap:anywhere}.mapping-editor{display:grid;gap:9px}.mapping-mode-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-bottom:9px}.mapping-mode-bar button{height:30px;border:1px solid #d8dddb;border-radius:8px;background:#fff;color:#232524;cursor:pointer;font-size:11px;font-weight:900}.mapping-mode-bar button.is-active{border-color:#2f6f5f;background:#2f6f5f;color:#fff}.mapping-active,.mapping-issue-item{min-width:0;display:grid;grid-template-columns:36px minmax(0,1fr);align-items:center;gap:9px;padding:9px;border:1px solid #d8dddb;border-radius:8px;background:#fbfbfa}.mapping-active>strong,.mapping-issue-item>strong,.mapping-preview{display:grid;place-items:center;width:36px;height:36px;overflow:hidden;border-radius:8px;border:1px solid #d8dddb;background:#fff;font-size:18px;text-overflow:ellipsis}.mapping-preview svg{width:88%;height:88%;display:block}.mapping-preview path{fill:#222524}.mapping-active>span,.mapping-issue-item>span{min-width:0;display:grid;gap:2px}.mapping-active b,.mapping-issue-item b{min-width:0;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.mapping-active small,.mapping-issue-item small,.mapping-issue-item em{min-width:0;overflow:hidden;color:#6f7673;font-size:11px;font-style:normal;font-weight:750;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.mapping-presets{display:flex;flex-wrap:wrap;gap:6px}.mapping-presets button{min-width:30px;height:30px;padding:0 8px;border:1px solid #d8dddb;border-radius:8px;background:#fff;color:#232524;cursor:pointer;font-size:12px;font-weight:900}.mapping-presets button:hover{border-color:#9db0aa;background:#f4f8f6}.mapping-issue-list{display:grid;gap:7px;margin-top:10px}.mapping-bulk-row,.mapping-row{display:grid;align-items:center;gap:7px}.mapping-bulk-row{grid-template-columns:minmax(0,1fr) auto;margin-top:10px}.mapping-bulk-row label{min-width:0;height:34px;display:flex;align-items:center;gap:7px;padding:0 9px;border:1px solid #d8dddb;border-radius:8px;background:#fbfbfa;color:#515956;font-size:11px;font-weight:850}.mapping-bulk-row input,.mapping-check input{accent-color:#2f6f5f}.mapping-manager-list{max-height:430px;overflow:auto;padding-right:2px}.mapping-row{grid-template-columns:24px minmax(0,1fr) 34px}.mapping-row.is-selected .mapping-issue-item{border-color:#2f6f5f;box-shadow:0 0 0 2px #2f6f5f1f}.mapping-check{height:34px;display:grid;place-items:center}.mapping-issue-item{width:100%;color:#232524;cursor:pointer;text-align:left}.mapping-issue-item.warning{border-color:#eed7af;background:#fffaf1}.mapping-issue-item.error{border-color:#efc0ad;background:#fff4ee}.mapping-issue-item.pass{border-color:#bcd9d0;background:#f1faf6}.mapping-issue-item:hover{border-color:#9db0aa;background:#f4f8f6}.mapping-row-delete{align-self:stretch}.character-debug-list{display:grid;gap:7px;margin-top:10px}.character-debug-item{min-width:0;display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:8px;padding:9px;border:1px solid #d8dddb;border-radius:8px;background:#fbfbfa;color:#232524;text-align:left}button.character-debug-item{cursor:pointer}button.character-debug-item:hover{border-color:#9db0aa;background:#f4f8f6}.character-debug-item.pass{border-color:#bcd9d0;background:#f1faf6}.character-debug-item.warning{border-color:#eed7af;background:#fffaf1}.character-debug-item.error{border-color:#efc0ad;background:#fff4ee}.character-debug-item>strong{display:grid;place-items:center;width:34px;height:34px;border-radius:8px;background:#fff;border:1px solid #d8dddb;font-size:19px}.character-debug-item>span{min-width:0;display:grid;gap:2px}.character-debug-item b{font-size:12px}.character-debug-item small,.character-debug-item em{min-width:0;overflow:hidden;color:#6f7673;font-size:11px;font-style:normal;font-weight:750;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.kerning-matrix-list{display:grid;gap:7px}.kerning-matrix-item{display:grid;grid-template-columns:minmax(0,1fr) 48px;gap:7px}.kerning-matrix-item>button:first-child,.mini-action{height:38px;border:1px solid #d8dddb;border-radius:8px;background:#fbfbfa;color:#232524;cursor:pointer}.kerning-matrix-item>button:first-child{min-width:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 10px;text-align:left}.kerning-matrix-item>button:first-child:hover,.mini-action:hover{border-color:#9db0aa;background:#f4f8f6}.kerning-matrix-item.suggested>button:first-child{border-color:#eed7af;background:#fffaf1}.kerning-matrix-item.manual>button:first-child{border-color:#bdddd2;background:#eef8f4}.kerning-matrix-item.missing>button:first-child{color:#9a351f;border-color:#efc0ad;background:#fff4ee}.kerning-matrix-item strong{font-size:14px}.kerning-matrix-item span{min-width:0;overflow:hidden;color:#6f7673;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.mini-action{font-size:12px;font-weight:900}.save-status{justify-content:space-between;gap:8px;padding:9px 10px;margin-bottom:14px;border:1px solid #bdddd2;border-radius:8px;background:#eef8f4;color:#2f6f5f;font-size:12px;font-weight:800}.save-status span{min-width:0;flex:1}.save-status button{height:26px;padding:0 8px;border-radius:7px;border:1px solid #bdddd2;background:#fff;color:#2f6f5f;cursor:pointer;font-size:11px;font-weight:800}.coverage-list,.quality-list{display:grid;gap:10px}.coverage-row{display:grid;gap:6px}.coverage-row-head,.coverage-meta{display:flex;align-items:center;justify-content:space-between;gap:8px}.coverage-row-head span{color:#232524;font-size:12px;font-weight:800}.coverage-row-head strong,.coverage-meta small{color:#6f7673;font-size:11px}.coverage-bar{height:6px;overflow:hidden;border-radius:999px;background:#edf0ee}.coverage-bar span{display:block;height:100%;border-radius:inherit;background:#2f6f5f}.coverage-meta small:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quality-pass{justify-content:center;gap:7px;min-height:42px;border:1px solid #bdddd2;border-radius:8px;background:#eef8f4;color:#2f6f5f;font-size:12px;font-weight:800}.quality-item{align-items:flex-start;gap:8px;padding:9px 10px;border-radius:8px;border:1px solid #efc0ad;background:#fff4ee;color:#9a351f}.quality-item.error{border-color:#e79b96;background:#fff0f0}.quality-item svg{flex:0 0 auto;margin-top:1px}.quality-item span{min-width:0;display:grid;gap:2px}.quality-item strong{font-size:12px}.quality-item small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit;opacity:.82;font-size:11px}.warning-list{border-color:#e6c370}.warning-item{display:grid;gap:3px;padding:9px 0;border-top:1px solid #f0e4bd}.warning-item span{font-size:12px;font-weight:700}.panel-heading{justify-content:space-between;gap:16px;margin-bottom:14px}.ghost-button{height:32px}.glyph-toolbar{position:sticky;top:0;z-index:20;margin:-16px -16px 14px;padding:14px 16px 12px;border-bottom:1px solid #d8dddb;background:#f6f7f6f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.glyph-toolbar .panel-heading{margin-bottom:10px}.glyph-searchbar{display:grid;grid-template-columns:minmax(180px,1fr) 136px 116px auto;gap:8px;margin:0}.glyph-searchbar label{min-width:0;height:36px;display:flex;align-items:center;gap:7px;padding:0 10px;border:1px solid #d8dddb;border-radius:8px;background:#fff;color:#6f7673}.glyph-searchbar label>span{flex:0 0 auto;color:#232524;font-size:11px;font-weight:900;text-transform:uppercase}.glyph-searchbar input,.glyph-searchbar select,.glyph-searchbar button{height:36px;min-width:0;border:1px solid #d8dddb;border-radius:8px;background:#fff;color:#232524;font-size:12px;font-weight:800}.glyph-searchbar input{flex:1;height:auto;padding:0;border:0;outline:0;font-size:13px;font-weight:750}.glyph-searchbar select{padding:0 8px}.glyph-searchbar .glyph-status-filter{color:#6f7673}.glyph-searchbar button{padding:0 11px;cursor:pointer}.glyph-searchbar button:disabled{opacity:.45;cursor:default}.empty-state{min-height:320px;display:grid;place-items:center;align-content:center;gap:10px;border:1px dashed #c6ceca;border-radius:8px;color:#707875;background:#fbfbfa;font-weight:700}.empty-state.slim{min-height:210px}.glyph-list-scroll{min-height:0;max-height:calc(100vh - 214px);overflow-x:hidden;overflow-y:auto;padding-right:6px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#c8d1cd transparent}.glyph-list-scroll::-webkit-scrollbar{width:10px}.glyph-list-scroll::-webkit-scrollbar-track{background:transparent}.glyph-list-scroll::-webkit-scrollbar-thumb{border:2px solid #fbfbfa;border-radius:999px;background:#c8d1cd}.glyph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,112px));justify-content:start;align-items:start;gap:8px}.glyph-tile{position:relative;height:128px;min-height:0;border:1px solid #d8dddb;border-radius:8px;background:#fff;color:#232524;overflow:hidden;padding:0;text-align:left;transition:border-color .14s ease,box-shadow .14s ease,transform .14s ease}.glyph-tile:hover{border-color:#95aaa4;transform:translateY(-1px)}.glyph-tile.is-selected{border-color:#2f6f5f;box-shadow:0 0 0 2px #2f6f5f29}.glyph-tile.has-error{border-color:#dd8b80}.glyph-tile-main{width:100%;height:100%;min-height:0;display:grid;grid-template-rows:28px 72px 28px;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.glyph-tile-main:disabled{opacity:1;cursor:default}.glyph-tile-delete{position:absolute;top:33px;right:6px;z-index:3;width:24px;height:24px;display:grid;place-items:center;border:1px solid #d8dddb;border-radius:8px;background:#ffffffeb;color:#6f7673;cursor:pointer;opacity:0;box-shadow:0 5px 18px #1e24221a;transition:opacity .12s ease,background .12s ease,color .12s ease,border-color .12s ease}.glyph-tile:hover .glyph-tile-delete,.glyph-tile.is-selected .glyph-tile-delete{opacity:1}.glyph-tile-delete:hover{border-color:#efc0ad;background:#fff4ee;color:#9a351f}.glyph-label{justify-content:space-between;gap:6px;min-width:0;padding:5px 7px;border-bottom:1px solid #eef0ef;background:#fafafa}.glyph-label strong{min-width:0;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.glyph-label span{overflow:hidden;color:#6f7673;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.glyph-box{display:grid;place-items:center;height:72px;min-height:0;overflow:hidden;position:relative}.glyph-box:before,.glyph-box:after{content:"";position:absolute;left:6px;right:6px}.glyph-box:before{top:27%;border-top:1px solid #2f6fd6}.glyph-box:after{bottom:28%;border-top:1px solid #d94848}.glyph-box span{font-size:clamp(16px,3vw,26px);font-weight:800;max-width:100%;overflow:hidden;text-overflow:ellipsis;z-index:1}.glyph-box svg{width:62.5%;height:62.5%;display:block;z-index:1}.glyph-box path{fill:#222524}.glyph-meta{justify-content:space-between;min-width:0;padding:5px 7px;border-top:1px solid #eef0ef;color:#6f7673;font-size:11px;font-weight:800}.glyph-meta span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preview-stack{display:grid;gap:12px}.coverage-note{gap:8px;align-items:flex-start;padding:9px 10px;margin:-2px 0 12px;border-radius:8px;background:#eef8f4;color:#2f6f5f;border:1px solid #bdddd2;font-size:12px;font-weight:700;line-height:1.35}.coverage-note.warning{background:#fff4ee;color:#9a351f;border-color:#efc0ad}.coverage-note svg{flex:0 0 auto;margin-top:1px}.unicode-inspector{padding:10px;margin:-2px 0 12px;border:1px solid #d8dddb;border-radius:8px;background:#fff}.unicode-inspector.has-warning{border-color:#efc0ad;background:#fffaf7}.unicode-inspector-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;color:#6f7673;font-size:11px;font-weight:800;text-transform:uppercase}.unicode-inspector-head strong{color:#232524}.unicode-chip-list{display:flex;flex-wrap:wrap;gap:6px}.unicode-chip{display:grid;grid-template-columns:auto auto;gap:2px 6px;align-items:center;max-width:100%;padding:6px 7px;border-radius:8px;border:1px solid #d8dddb;background:#f7faf8;color:#232524}.unicode-chip b{min-width:12px;font-size:13px;line-height:1}.unicode-chip small{color:#6f7673;font-size:10px;font-weight:800}.unicode-chip em{grid-column:1 / -1;overflow:hidden;color:#6f7673;font-size:10px;font-style:normal;font-weight:700;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.unicode-chip.alias{border-color:#bdddd2;background:#eef8f4}.unicode-chip.fallback{border-color:#edcf95;background:#fff9ed}.unicode-chip.missing{border-color:#efc0ad;background:#fff4ee}.preview-line{border:1px solid #d8dddb;border-radius:8px;background:#fff;height:120px;overflow:hidden}.preview-line svg{width:100%;height:100%;display:block}.preview-line path{fill:#222524}.preview-line .baseline{stroke:#d94848;stroke-width:1}.preview-line .capline{stroke:#2f6fd6;stroke-width:1;opacity:.55}.preview-error{display:grid;place-items:center;color:#9a351f;background:#fff8f4;font-size:13px;font-weight:700}.export-dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:35;display:grid;place-items:center;padding:18px;background:#191e1d6b;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.export-dialog{width:min(720px,100%);max-height:calc(100vh - 36px);overflow:auto;border:1px solid #cbd4cf;border-radius:8px;background:#fbfbfa;box-shadow:0 22px 70px #141d1a47;padding:18px}.export-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.export-dialog-head h2{font-size:18px;line-height:1.2}.export-dialog-head span{display:block;margin-top:4px;color:#6f7673;font-size:12px}.ghost-button.compact{height:32px;padding:0 10px}.export-name-field input{height:44px;font-size:16px;font-weight:800}.export-dialog-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.export-dialog textarea{min-height:72px}.export-meta-actions{display:flex;justify-content:flex-end;margin:8px 0 10px}.export-meta-actions button{height:30px;padding:0 10px;border:1px solid #d8dddb;border-radius:8px;background:#fff;color:#2f6f5f;font-size:11px;font-weight:850;cursor:pointer}.export-derived-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;margin-bottom:14px;border:1px solid #d8dddb;border-radius:8px;background:#f7faf8}.export-derived-meta span{display:grid;min-width:0;gap:2px}.export-derived-meta b{color:#6f7673;font-size:10px;text-transform:uppercase}.export-derived-meta em{overflow:hidden;color:#232524;font-size:12px;font-style:normal;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.export-format-list{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 18px}.export-format-list span{display:inline-flex;align-items:center;height:28px;padding:0 10px;border:1px solid #d8dddb;border-radius:8px;background:#eef3f1;color:#2f6f5f;font-size:11px;font-weight:850}.export-dialog-actions{display:flex;justify-content:flex-end;gap:10px}.drag-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;place-items:center;align-content:center;gap:14px;background:#f5f8f6db;color:#26312f;font-weight:800;z-index:20}.app-shell.is-dragging .drag-overlay{display:grid}@media(max-width:1120px){.workspace{grid-template-columns:56px minmax(320px,1fr)}.glyph-panel{grid-column:2;grid-row:1}.preview-panel{grid-column:2;grid-row:2;border-left:0;border-top:1px solid #d8dddb;max-height:none}.tool-rail{grid-column:1;grid-row:1 / span 2}.tool-drawer{left:70px}}@media(max-width:920px){.spacing-board-head{align-items:flex-start;flex-direction:column}.spacing-board-controls{justify-content:flex-start}.spacing-board-grid{grid-template-columns:1fr}}@media(max-width:760px){.app-shell{grid-template-rows:auto 1fr}.topbar{align-items:flex-start;flex-direction:column}.top-actions{width:100%;justify-content:flex-start}.workspace{grid-template-columns:52px minmax(0,1fr)}.preview-panel{border-right:0;border-left:0;border-bottom:1px solid #d8dddb}.tool-rail{padding:8px 5px}.tool-rail-button{width:40px;height:40px}.tool-drawer{top:88px;left:60px;bottom:auto;width:min(360px,calc(100vw - 74px))}.glyph-panel{grid-column:2;min-height:420px}.preview-panel{grid-column:2}}
