:root{--blue:#2e82f7;--dark:#152a47;--text:#21344e;--muted:#718099;--border:#e7edf6;--bg:#f6f9ff;--white:#fff;--shade:#f3f7fd;--shadow:0 5px 25px rgba(36,73,133,.045)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.42;cursor:not-allowed}a{color:inherit;text-decoration:none}button:focus-visible,canvas:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #69a8ff;outline-offset:3px}.skip-link{position:absolute;top:-45px;left:12px;z-index:1000;background:#fff;padding:8px}.skip-link:focus{top:8px}.sitebar{height:65px;display:flex;align-items:center;padding:0 max(28px,calc((100vw - 1490px)/ 2));border-bottom:1px solid var(--border);background:#fff;gap:23px}.logo{display:flex;align-items:center;gap:8px;font-weight:780;color:#21304a;letter-spacing:-.4px;font-size:17px;white-space:nowrap}.logo-mark{font-weight:850;background:linear-gradient(135deg,#88d8ff,#2975ed);border-radius:9px;width:30px;height:30px;display:grid;place-items:center;color:#fff;font-size:19px}.crumb{border-left:1px solid var(--border);padding-left:22px;color:#8290a6;font-size:12px}.crumb strong{color:#263b54;font-weight:600}.top-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.offline-pill{background:#edfaf4;color:#32845c;font-size:11px;font-weight:730;border-radius:20px;padding:6px 10px;white-space:nowrap}.online-dot{display:inline-block;width:6px;height:6px;background:#42b77a;border-radius:50%;margin-right:5px}.workspace{width:min(1470px,calc(100% - 48px));margin:0 auto}.heading{padding:30px 0 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}.heading h1{font-size:30px;letter-spacing:-1px;line-height:1.12;margin:8px 0 6px;color:#172841}.heading h1 span{color:#3892ef}.heading p{margin:0;color:#71839d;font-size:13px}.eyebrow{color:#6297d7;letter-spacing:1.7px;font-size:9px;font-weight:800}.small-dot{margin:0 6px}.heading-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.btn{border:1px solid #e1e8f3;background:#fff;color:#354d6f;font-size:12px;font-weight:650;border-radius:9px;padding:10px 14px;box-shadow:none;white-space:nowrap}.btn:hover:not(:disabled){border-color:#9cbfec;background:#f8fbff}.btn.primary{background:#3286ed;border-color:#3286ed;color:#fff;box-shadow:0 3px 10px rgba(46,130,247,.16)}.btn.primary:hover{background:#1b73e0}.btn.ghost{background:#fff}.btn.subtle{background:#eff5ff;border-color:#e2edff;color:#3974c4}.btn.compact{font-size:11px;padding:7px 10px}.btn.block{width:100%}.danger-text{color:#c95f67!important}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-bottom:16px}.stat{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:12px;padding:13px 17px;box-shadow:var(--shadow)}.stat-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:#3d81d3;background:#eef6ff;font-weight:800;font-size:16px}.stat-label{font-size:10px;color:#8291aa;display:block;font-weight:600}.stat strong{display:block;font-size:14px;color:#273d58}.studio-layout{display:grid;grid-template-columns:minmax(205px,245px) minmax(360px,1fr) minmax(240px,274px);gap:14px;align-items:stretch}.panel{background:#fff;border:1px solid var(--border);border-radius:13px;box-shadow:var(--shadow);min-width:0;overflow:hidden}.design-head,.panel-heading{padding:18px 17px 15px;border-bottom:1px solid #ebf0f7;display:flex;align-items:center;justify-content:space-between;gap:7px}.panel h2{font-size:15px;line-height:1.4;margin:3px 0 0;letter-spacing:-.35px}.panel h3{margin:0 0 6px;font-size:12px;color:#34445e}.panel-body{padding:17px}.input-label{font-size:10px;font-weight:750;display:block;color:#647791;margin-bottom:6px}.panel input,.panel select,.specimen-panel textarea{width:100%;min-width:0;padding:9px 10px;border:1px solid #e2e8f3;border-radius:8px;background:#fff;color:#253b57;outline:0;font-size:12px}.panel input:focus,.panel select:focus,.specimen-panel textarea:focus{border-color:#6da7f2;box-shadow:0 0 0 3px #e7f1ff}.segments{margin:13px 0 15px;display:flex;gap:3px;background:#f2f6fc;border-radius:8px;padding:3px}.segments button{flex:1;padding:6px 2px;font-size:10px;font-weight:700;border:0;border-radius:6px;color:#7990ad;background:0 0}.segments button.active{background:#fff;color:#3e80d0;box-shadow:0 1px 3px #deebfa}.glyph-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;max-height:325px;overflow-y:auto;padding:2px}.glyph-cell{min-width:0;aspect-ratio:1;border:1px solid #e7edf5;background:#fff;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;color:#294569;padding:0}.glyph-cell strong{font-size:18px;font-family:Georgia,serif;font-weight:600;line-height:1.3}.glyph-cell small{font-size:8px;color:#a1b0c2}.glyph-cell.active{border:1.5px solid #4a99ff;background:#eaf4ff;color:#1f6fcd}.glyph-cell:hover{background:#f2f8ff}.glyph-count{color:#8d9db1;font-size:10px;text-align:center;margin:12px 0 17px}.field-row{margin-top:14px}.input-with-button{display:flex;gap:6px}.input-with-button input{flex:1}.library-note{background:#f3f8ff;border:1px solid #e6eefb;border-radius:9px;padding:12px;color:#7389a8;font-size:10.5px;margin-top:16px}.design-panel{display:flex;flex-direction:column}.design-head{padding:16px 18px}.design-title{display:flex;align-items:center;gap:12px}.design-title h2{font-size:17px}.mono{font:10px ui-monospace,Menlo,monospace;background:#f4f8ff;color:#6c8dbb;padding:4px 6px;border-radius:5px}.edit-actions{display:flex;align-items:center;gap:5px}.icon-btn{border:1px solid #e5ebf4;border-radius:8px;background:#fff;width:28px;height:28px;display:grid;place-items:center;color:#5c7799;font-size:16px;flex-shrink:0}.icon-btn:hover{background:#eef5ff}.v-divider{width:1px;height:17px;background:var(--border);margin:0 4px}.design-toolbar{padding:11px 16px;border-bottom:1px solid var(--border);display:flex;flex-wrap:wrap;align-items:center;gap:5px}.design-toolbar button{border:1px solid transparent;border-radius:7px;background:0 0;color:#7890ac;padding:6px 9px;font-size:11px;font-weight:600}.design-toolbar button.active{background:#eaf4ff;border-color:#cde5ff;color:#2375d1}.design-toolbar button:hover:not(.active){background:#f4f7fc}.design-toolbar button:first-letter{font-size:15px}.toolbar-sep{width:1px;height:19px;background:#e7edf5;margin:0 4px}.stage-outer{margin:16px 16px 5px;background:#f9fbff;border:1px solid #e7eef9;border-radius:10px;min-height:365px;overflow:hidden}.stage-outer canvas{display:block;width:100%;height:342px;touch-action:none;cursor:crosshair}.stage-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 13px;color:#91a0b6;font-size:10px;border-top:1px solid #e8eef8}.guides-legend{display:flex;justify-content:center;gap:17px;padding:10px;color:#8b9ab0;font-size:10px;flex-wrap:wrap}.guide-line{display:inline-block;width:15px;height:0;border-top:2px dashed #92add0;vertical-align:middle;margin-right:4px}.guide-line.base{border-color:#e8aa82}.guide-line.desc{border-color:#c7b7e8}.contour-bar{margin:0 16px 9px;padding:12px 0 2px;border-top:1px solid #ecf0f6;display:flex;align-items:center;justify-content:space-between;gap:6px}.contour-bar strong{font-size:12px}.hint{font-size:11px;color:#8493a8;margin:2px 0 10px;line-height:1.45}.shape-controls{display:flex;gap:5px;flex-wrap:wrap}.contour-list{padding:0 16px 15px;display:flex;flex-wrap:wrap;gap:5px}.contour-pill{font-size:10px;border:1px solid #e4ebf5;background:#fff;padding:6px 9px;border-radius:7px;color:#627d9d}.contour-pill.active{border-color:#6facf7;background:#edf6ff;color:#2d77cd}.chip{font-size:9px;color:#4c9b77;background:#eaf8f1;border:1px solid #d5f0e3;border-radius:12px;padding:4px 8px;font-weight:700}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.field-row-action{display:flex;gap:6px;flex-wrap:wrap;margin:11px 0}.separator{border-top:1px solid #eaf0f8;margin:17px 0}.metrics-mini{display:grid;grid-template-columns:1fr;gap:4px;font-size:10px;color:#8496ac;background:#f6f9fd;padding:10px;border-radius:8px}.metrics-mini span{display:flex;justify-content:space-between}.metrics-mini b{font-size:10px;color:#536c88}.pair-grid{margin-bottom:9px}.kerning-list{margin:10px 0 0;max-height:100px;overflow:auto;display:flex;flex-wrap:wrap;gap:4px}.kern-pill{border-radius:6px;background:#f1f6fd;font:10px monospace;color:#5e7896;padding:5px 8px}.specimen-panel{margin-top:15px;padding:20px 24px}.specimen-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.specimen-heading h2{font-size:18px}.specimen-heading p{font-size:12px;color:#8a99ae;margin:5px 0 15px}.specimen-options{display:flex;align-items:center;gap:11px;flex-wrap:wrap;color:#6f839d;font-size:11px}.specimen-options input{width:110px;accent-color:#3889e9}.specimen-panel textarea{font-size:12px;resize:vertical;line-height:1.6;margin-bottom:14px}.specimen-panel canvas{width:100%;height:230px;border-radius:9px;background:#f4f7fc;display:block}.specimen-footer{padding-top:10px;display:flex;justify-content:space-between;font-size:10px;color:#8294a9;gap:8px}.bottom-info{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.bottom-info>div{display:flex;flex-direction:column;padding:11px 15px;gap:3px}.bottom-info strong{font-size:11px;color:#4e6b90}.bottom-info span{color:#95a4b5;font-size:10px}footer{text-align:center;color:#9aaabc;font-size:10px;padding:18px 0 27px;border-top:1px solid var(--border)}.toast{position:fixed;bottom:25px;right:20px;background:#1c3658;color:#fff;border-radius:10px;box-shadow:0 8px 28px #56789a44;padding:12px 18px;font-size:12px;max-width:min(420px,calc(100vw - 35px));transform:translateY(90px);opacity:0;pointer-events:none;transition:.2s;z-index:500}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#aa3f4d}.modal{border:1px solid #dfe9f7;border-radius:18px;padding:0;box-shadow:0 25px 100px #162b4966;width:min(480px,calc(100vw - 28px))}.modal::backdrop{background:#15284080}.modal-inner{padding:25px}.modal-top{display:flex;justify-content:space-between;align-items:start}.modal-top h2{font-size:23px;margin:5px 0 12px}.modal-inner>p{color:#7489a6;font-size:12px}.export-buttons{display:grid;gap:8px;margin:18px 0}.export-buttons button{width:100%;border:1px solid #e3ebf7;border-radius:9px;background:#faffff;text-align:left;padding:12px}.export-buttons button:hover{background:#f0f7ff;border-color:#9bc5f7}.export-buttons strong{display:block;color:#31537e;font-size:13px}.export-buttons span{display:block;font-size:11px;color:#8ca0b8}.help-list{padding-left:21px;color:#5b6f88;font-size:12px;line-height:1.8}.help-list li{margin-bottom:9px}@media(max-width:1180px){.workspace{width:calc(100% - 30px)}.studio-layout{grid-template-columns:minmax(190px,240px) minmax(310px,1fr)}.settings-panel{grid-column:1/-1}.settings-panel .panel-body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:25px;align-items:start}.settings-panel .separator{grid-column:1/-1;margin:5px 0}.stats{gap:8px}.stage-outer canvas{height:360px}}@media(max-width:750px){.sitebar{padding:0 16px}.crumb{display:none}.heading{align-items:flex-start;flex-direction:column;padding:23px 0}.heading-actions{width:100%}.heading-actions .btn{flex:1}.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.studio-layout{grid-template-columns:1fr}.glyph-panel{grid-column:1}.glyph-grid{grid-template-columns:repeat(8,minmax(0,1fr));max-height:230px}.settings-panel{grid-column:1}.settings-panel .panel-body{display:block}.stage-outer canvas{height:350px}.specimen-heading{align-items:flex-start;flex-direction:column}.bottom-info{grid-template-columns:1fr}.bottom-info>div{padding:7px 10px}.edit-actions .btn{display:none}.design-head{padding:14px 12px}.specimen-panel{padding:16px}.design-toolbar button{padding:5px 7px}}@media(max-width:450px){.heading h1{font-size:26px}.stats{grid-template-columns:1fr 1fr}.stat{padding:11px}.stat-icon{display:none}.glyph-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.stage-outer{margin:10px 9px 5px}.stage-outer canvas{height:310px}.design-toolbar{padding:9px 8px}.design-toolbar button span{display:none}.design-toolbar button{font-size:10px}.guides-legend{gap:7px}.shape-controls{gap:3px}.shape-controls .btn{padding:5px}.contour-bar{margin:0 9px 8px}.contour-list{padding:0 9px 12px}.specimen-panel canvas{height:190px}}.point-edit{margin:0 16px 16px;padding:13px;border:1px solid #e7edf6;border-radius:10px;background:#f8fbff}.audit-heading,.point-header,.proof-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.point-header strong{font-size:12px}.point-header .hint{margin:0}.point-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;align-items:end;gap:8px;margin-top:10px}.point-grid input,.point-grid select{width:100%;min-width:0;border:1px solid #dce7f5;border-radius:8px;padding:7px 8px;font-size:12px;background:#fff}.point-grid button{white-space:nowrap}.point-grid input:disabled,.point-grid select:disabled{background:#eff3f8}.audit-panel,.proof-panel{padding:18px 22px;margin-top:15px}.audit-heading h2,.proof-header h2{font-size:17px;margin:3px 0 0}.audit-heading .hint,.proof-header .hint{margin-top:6px}.audit-actions{display:flex;gap:7px;flex-wrap:wrap}.audit-summary{font-size:12px;color:#526882;margin:12px 0 3px}.audit-summary strong{color:#276cb5}.audit-issues{margin:10px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:170px;overflow:auto}.audit-issues li{padding:7px 9px;background:#fff7f3;border-radius:7px;border:1px solid #f1e7de;color:#755d52;font-size:11px}.audit-issues li.error{background:#fff0f0;color:#a23a45}.audit-issues li.empty{background:#f2f8ff;color:#587493}.proof-text{border:1px solid #e8edf6;border-radius:10px;margin:12px 0 8px;padding:23px 18px;white-space:pre-wrap;overflow-wrap:anywhere;background:#fafcff;line-height:1.45;font-size:34px;min-height:100px;color:#244b7b}.proof-panel .hint{margin-bottom:0}@media(max-width:750px){.point-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-issues{grid-template-columns:1fr}.proof-text{font-size:24px}.audit-heading,.proof-header{align-items:flex-start}}@media(max-width:400px){.point-edit{margin:0 9px 12px}.point-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-panel,.proof-panel{padding:13px}}