@font-face{font-family:Source Han Sans;src:url(/fonts/SourceHanSansCN-VF.otf.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}@font-face{font-family:"Source Han Serif";src:url(/fonts/SourceHanSerifCN-VF.otf.woff2) format("woff2");font-weight:400 700;font-style:normal;font-display:swap}:root{font-family:Inter,Microsoft YaHei,PingFang SC,Arial,sans-serif;color:#1f2933;background:#e9e5da;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0;overflow:hidden}button,input,select{font:inherit}button{border:0;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.42}.admin-shell{display:grid;grid-template-columns:232px minmax(0,1fr);width:100%;height:100%;background:#f3f0e8}.admin-shell.admin-shell-locked{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.admin-sidebar{display:flex;flex-direction:column;gap:8px;border-right:1px solid #d8d0c3;background:#1f2933;padding:18px 14px;color:#f8f5ec}.admin-brand{display:grid;gap:4px;margin-bottom:18px}.admin-brand strong{font-size:20px}.admin-brand span,.admin-sidebar a{color:#cfd8dc;font-size:13px}.admin-nav{display:flex;min-height:0;flex:1;flex-direction:column;gap:8px}.admin-nav-group{display:grid;gap:4px}.admin-nav-label{color:#9fb0bd;font-size:12px;padding:0 12px}.admin-nav-children{display:grid;gap:4px;border-left:1px solid #506273;margin-left:10px;padding-left:7px}.admin-sidebar button,.admin-sidebar a{display:flex;min-height:40px;align-items:center;border-radius:8px;background:transparent;color:#f8f5ec;padding:0 12px;text-align:left;text-decoration:none}.admin-sidebar button:hover,.admin-sidebar a:hover,.admin-sidebar button.active{background:#35495a}.admin-nav-children button{min-height:36px;justify-content:space-between;color:#e5ebee;font-size:14px}.admin-nav-children button strong{min-width:24px;color:#aebdc7;font-size:12px;text-align:right}.admin-nav-children button.active strong{color:#f8f5ec}.admin-sidebar a{margin-top:auto}.admin-main{display:grid;min-width:0;grid-template-rows:auto minmax(0,1fr);gap:16px;overflow:auto;padding:22px}.admin-main.admin-main-locked{width:min(520px,100%);grid-template-rows:auto auto;align-content:center;justify-self:center}.admin-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid #ded6ca;border-radius:8px;background:#fffdf7;padding:16px 18px}.admin-topbar h1,.admin-panel h2,.admin-login-card h2{margin:0}.admin-topbar p,.admin-panel-title p,.admin-empty-panel p{margin:4px 0 0;color:#6b6258}.admin-topbar button,.admin-login-card button,.admin-category-table button,.admin-symbol-table button,.admin-library-transfer-bar button,.admin-member-table button{display:inline-flex;height:36px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 12px}.admin-login-card,.admin-panel{display:grid;align-content:start;gap:14px;border:1px solid #ded6ca;border-radius:8px;background:#fffdf7;padding:18px}.admin-login-card{width:min(420px,100%)}.admin-login-card form{display:grid;gap:12px}.admin-login-card label,.admin-search{display:grid;gap:6px;color:#5f574f}.admin-login-card input,.admin-create-bar input,.admin-create-bar select,.admin-account-form input,.admin-account-form textarea,.admin-category-table input,.admin-symbol-table input,.admin-symbol-table select,.admin-member-table input,.admin-member-table select,.admin-member-filters input,.admin-member-filters select,.admin-search input{min-width:0;height:36px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 9px}.admin-login-card button{background:#e9f0df;font-weight:700}.admin-error{margin:0;color:#a73522}.admin-panel-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.admin-search{grid-template-columns:auto minmax(0,1fr);align-items:center;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:0 10px}.admin-search input{border:0}.admin-member-status-summary{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px}.admin-analytics-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.admin-dashboard-title{align-items:flex-start}.admin-analytics-cards>button,.admin-analytics-group{display:grid;gap:12px;min-width:0;border:1px solid #e4ddd1;border-radius:10px;background:#fffdf8;padding:16px;text-align:left}.admin-analytics-cards>button{cursor:pointer;font:inherit}.admin-analytics-cards>button:hover{background:#f8f6ef}.admin-analytics-cards>button.active{border-color:#8aa67c;background:#f0f5e9}.admin-analytics-cards span{color:#5f6858;font-size:13px;font-weight:700}.admin-analytics-cards strong{color:#303b36;font-size:24px;line-height:1.2;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.admin-analytics-cards .admin-analytics-summary{grid-column:span 1;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 0}.admin-analytics-summary .admin-analytics-summary-title{grid-column:1 / -1;color:#303b36;font-size:15px}.admin-analytics-summary>div{display:grid;gap:4px;min-width:0;border-left:1px solid #d4dcc9;padding-left:8px}.admin-analytics-summary>div:first-of-type{border-left:0;padding-left:0}.admin-analytics-summary>div span{font-size:12px;font-weight:400}.admin-analytics-summary.active strong{color:#285f37}.admin-analytics-group h3{display:flex;align-items:baseline;gap:10px;margin:0;color:#303b36;font-size:15px}.admin-analytics-group h3 span{color:#8a857a;font-size:12px;font-weight:400}.admin-analytics-group-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.admin-analytics-group-metrics.is-outputs{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-analytics-group-metrics button{display:grid;align-content:start;gap:8px;min-width:0;border:0;border-left:1px solid #e7e1d7;border-radius:0;background:transparent;padding:8px 12px;text-align:left;font:inherit;cursor:pointer}.admin-analytics-group-metrics button:first-child{border-left:0}.admin-analytics-group-metrics button span{font-size:12px;font-weight:400}.admin-analytics-group-metrics button:hover{background:#f7f5ee}.admin-analytics-group-metrics button.active{border-radius:6px;background:#edf4e4;box-shadow:inset 0 -2px #779763}.admin-analytics-group-metrics button.active strong{color:#285f37}.admin-analytics-group-metrics .is-duration strong{font-size:19px;line-height:1.5}.admin-analytics-cards button:focus-visible{outline:2px solid #779763;outline-offset:2px}.admin-analytics-trend{display:grid;gap:10px;border:1px solid #ded6ca;border-radius:10px;background:#f8f4ec;padding:14px}.admin-analytics-trend h3,.admin-analytics-trend p{margin:0}.admin-analytics-trend p{margin-top:4px;color:#6b6258;font-size:13px}.admin-analytics-trend-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.admin-analytics-range{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.admin-analytics-range button{border:1px solid #cfc6b8;border-radius:6px;background:#fffdf7;color:#555f50;padding:5px 9px;cursor:pointer;font:inherit;font-size:13px}.admin-analytics-range button.active{border-color:#779763;background:#e9f2df;color:#285f37}.admin-analytics-calendar-anchor{position:relative}.admin-analytics-calendar{position:absolute;z-index:12;top:calc(100% + 8px);right:0;width:min(710px,calc(100vw - 64px));border:1px solid #ded6ca;border-radius:10px;background:#fffdf7;box-shadow:0 12px 30px #37482d2e;padding:12px;color:#303a31}.admin-analytics-calendar-navigation{display:grid;grid-template-columns:34px 1fr 34px;align-items:center;gap:8px;margin-bottom:10px;text-align:center;font-weight:700}.admin-analytics-calendar-navigation button{width:30px;height:30px;padding:0;justify-self:center;font-size:23px;line-height:1}.admin-analytics-calendar-months{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.admin-analytics-calendar-month h3{margin:0 0 8px;color:#263238;font-size:16px;text-align:center}.admin-analytics-calendar-weekdays,.admin-analytics-calendar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px}.admin-analytics-calendar-weekdays{margin-bottom:4px;color:#6b6258;font-size:12px;text-align:center}.admin-analytics-calendar-days button{width:100%;min-height:30px;border:0;border-radius:5px;background:transparent;color:#263238;padding:0;text-align:center}.admin-analytics-calendar-days button:hover:not(:disabled){background:#edf4e4;color:#285f37}.admin-analytics-calendar-days button.outside-month{color:#b8b6af}.admin-analytics-calendar-days button.within-range{border-radius:0;background:#edf4e4;color:#285f37}.admin-analytics-calendar-days button.selected{border-radius:5px;background:#6f9364;color:#fff;font-weight:700}.admin-analytics-calendar-days button:disabled{color:#d0cec7;cursor:not-allowed}.admin-analytics-calendar-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px;border-top:1px solid #ebe4d8;padding-top:10px;color:#6b6258;font-size:12px}.admin-analytics-calendar-footer button{border-color:#779763;background:#e9f2df;color:#285f37;padding-inline:14px}.admin-analytics-calendar-footer button:disabled{cursor:not-allowed;opacity:.5}.admin-analytics-line-chart{position:relative;height:210px;margin-left:48px;margin-top:8px}.admin-analytics-y-axis{position:absolute;left:-48px;width:40px;height:100%;color:#8a857a;font-size:11px}.admin-analytics-y-axis span{position:absolute;right:0;transform:translateY(-50%)}.admin-analytics-line-chart svg{display:block;width:100%;height:100%}.admin-analytics-line-chart line{stroke:#e5dfd4;stroke-width:1;vector-effect:non-scaling-stroke}.admin-analytics-line-chart polyline{fill:none;stroke:#4c8658;stroke-width:1.4;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}.admin-analytics-node-hit{fill:transparent;cursor:crosshair}.admin-analytics-node-active{fill:#fffdf7;stroke:#397147;stroke-width:.5;pointer-events:none}.admin-analytics-tooltip{position:absolute;z-index:2;display:grid;gap:3px;min-width:84px;border:1px solid #779763;border-radius:6px;background:#fffdf7;box-shadow:0 3px 12px #37482d29;padding:6px 8px;color:#5f6858;font-size:12px;pointer-events:none;transform:translate(-50%,-112%)}.admin-analytics-tooltip strong{color:#285f37;font-size:14px}.admin-analytics-timeline{position:relative;height:22px;margin-left:48px;color:#6b6258;font-size:11px}.admin-analytics-timeline span{position:absolute;top:5px;white-space:nowrap;transform:translate(-50%)}.admin-analytics-timeline span:first-child{transform:none}.admin-analytics-timeline span:last-child{transform:translate(-100%)}.admin-member-status-summary>div{display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:12px;border:1px solid #d4dcc9;border-radius:10px;background:#f3f7ed;padding:12px 16px}.admin-member-status-summary span{color:#5f6858;font-size:13px;font-weight:700}.admin-member-status-summary strong{color:#1f5f2d;font-size:26px;line-height:1}.admin-member-status-summary.is-stale>div{border-color:#ded6ca;background:#f8f4ec}.admin-member-status-summary.is-stale strong{color:#8a8177}.admin-member-summary-note{margin:-4px 0 0;color:#8a6423;font-size:13px}.admin-member-filters{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr)) auto;align-items:end;gap:10px;border:1px solid #ded6ca;border-radius:8px;background:#f8f4ec;padding:10px}.admin-member-filters label{display:grid;gap:6px;color:#6b6258;font-size:13px;font-weight:700}.admin-member-filters input,.admin-member-filters select,.admin-member-filters button{width:100%;height:38px}.admin-create-bar{display:grid;grid-template-columns:auto minmax(180px,1fr) minmax(150px,220px) auto auto;align-items:center;gap:10px;border:1px solid #ded6ca;border-radius:8px;background:#f8f4ec;padding:10px}.admin-category-create-bar{grid-template-columns:minmax(180px,1fr) auto}.admin-library-transfer-bar{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:10px;border:1px solid #ded6ca;border-radius:8px;background:#f8f4ec;padding:10px}.admin-library-transfer-bar>div{display:grid;gap:3px;min-width:0}.admin-library-transfer-bar strong{color:#263238}.admin-library-transfer-bar span{color:#6b6258;font-size:13px}.admin-create-bar button{display:inline-flex;min-height:36px;align-items:center;justify-content:center;gap:6px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 12px}.admin-import-preview{width:42px;height:42px;border:1px solid #d8d0c3;border-radius:8px;background:#fffdf7;padding:5px}.admin-category-table,.admin-symbol-table,.admin-member-table{display:grid;align-content:start;gap:8px;overflow:auto}.admin-category-row,.admin-symbol-row,.admin-symbol-head,.admin-member-row,.admin-member-head{display:grid;align-items:center;gap:8px;border:1px solid #ded6ca;border-radius:8px;background:#fffdf7;padding:8px}.admin-category-row{grid-template-columns:38px minmax(170px,1fr) 170px 76px 76px}.admin-empty-list{border:1px dashed #c8c0b2;border-radius:8px;color:#6b6258;padding:24px;text-align:center}.admin-symbol-head,.admin-symbol-row{grid-template-columns:38px 64px minmax(150px,1fr) 80px minmax(130px,200px) 150px 120px 220px}.admin-provenance-filters{display:grid;grid-template-columns:repeat(2,minmax(180px,260px));gap:10px;align-items:end}.admin-provenance-filters label{display:grid;gap:6px;color:#6b6258;font-size:13px;font-weight:700}.admin-provenance-filters select{width:100%;height:38px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 10px}.admin-member-head,.admin-symbol-head{position:sticky;top:0;z-index:1;background:#f4efe6;color:#6b6258;font-size:12px;font-weight:700}.admin-member-head>button{display:inline-flex;min-width:0;align-items:center;justify-content:flex-start;gap:4px;border:0;background:transparent;color:inherit;padding:0;font:inherit;cursor:pointer}.admin-member-head>button:hover{color:#263238}.admin-member-head>button span{color:#887962;font-size:13px}.admin-member-head,.admin-member-row{grid-template-columns:92px minmax(116px,1fr) minmax(92px,118px) minmax(130px,156px) minmax(130px,156px) 82px minmax(88px,108px) 74px 74px 116px}.admin-member-table button{white-space:nowrap;word-break:keep-all;line-height:1}.admin-member-row strong{font-weight:700}.admin-user-type,.admin-member-library-unavailable{display:inline-flex;min-height:32px;align-items:center;justify-content:center;border:1px solid #b8caa8;border-radius:999px;background:#edf4e4;color:#3f612c;padding:0 9px;font-size:12px;font-weight:700;white-space:nowrap}.admin-user-type.is-visitor{border-color:#c9bd9e;background:#f5efe0;color:#715f31}.admin-member-library-unavailable{border-color:#ded6ca;background:#f8f4ec;color:#8a8177}.admin-member-meta,.admin-member-online{display:inline-flex;min-height:32px;align-items:center;border:1px solid #ded6ca;border-radius:999px;background:#f8f4ec;color:#6b6258;padding:0 10px;font-size:12px}.admin-member-online.is-online{gap:6px;border-color:#1f5f2d;background:#183f20;color:#76f06f;font-weight:800}.admin-member-online.is-online:before{content:"";width:8px;height:8px;flex:0 0 auto;border-radius:999px;background:#36c943;box-shadow:0 0 #36c9437a;animation:admin-online-pulse 1.25s ease-in-out infinite}@keyframes admin-online-pulse{0%,to{opacity:.45;box-shadow:0 0 #36c9436b}50%{opacity:1;box-shadow:0 0 0 5px #36c94300}}.admin-empty-row{margin:0;color:#6b6258}.admin-member-library-modal{display:grid;width:min(980px,calc(100vw - 40px));max-height:min(860px,calc(100vh - 40px));gap:16px;overflow:auto;border:1px solid #ded6ca;border-radius:10px;background:#fffdf7;padding:18px;box-shadow:0 24px 70px #1f29333d}.admin-member-library-section{display:grid;gap:10px;border-top:1px solid #e5ddd0;padding-top:14px}.admin-member-library-section h3{margin:0}.admin-member-category-list,.admin-member-symbol-list{display:grid;gap:8px}.admin-member-category-row,.admin-member-symbol-head,.admin-member-symbol-row{display:grid;align-items:center;gap:8px;border:1px solid #ded6ca;border-radius:8px;background:#fffdf7;padding:8px}.admin-member-category-row{grid-template-columns:minmax(180px,1fr) 90px 96px}.admin-member-symbol-head,.admin-member-symbol-row{grid-template-columns:64px minmax(180px,1fr) minmax(160px,220px) 96px}.admin-member-symbol-head{background:#f4efe6;color:#6b6258;font-size:12px;font-weight:700}.admin-member-symbol-row svg{width:54px;height:54px}.admin-member-category-row input,.admin-member-symbol-row input,.admin-member-symbol-row select{min-width:0;height:36px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 9px}.admin-member-category-row button,.admin-member-symbol-row button{display:inline-flex;height:36px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 10px}.admin-member-category-row .danger,.admin-member-symbol-row .danger{border-color:#d59b8f;color:#a73522}.admin-symbol-row svg{width:54px;height:54px}.admin-category-table .is-hidden,.admin-symbol-row.is-hidden{opacity:.62}.admin-row-actions,.admin-state-tags,.admin-provenance-tags{display:flex;flex-wrap:wrap;gap:6px}.admin-provenance-tags span,.admin-provenance-tags small{border:1px solid #ded6ca;border-radius:999px;background:#f8f4ec;color:#6b6258;padding:4px 8px;font-size:12px}.admin-provenance-tags span.source-independent{border-color:#a9c99a;background:#eef7e9;color:#35612c}.admin-provenance-tags span.source-third-party{border-color:#d7ba7c;background:#fff6df;color:#765718}.admin-provenance-tags span.source-unknown{border-color:#d9aaa0;background:#fff0ed;color:#873b2d}.admin-drag-handle{width:32px;height:32px;padding:0;cursor:grab;color:#6b6258}.admin-drag-handle:active{cursor:grabbing}.admin-category-row.is-dragging,.admin-symbol-row.is-dragging{opacity:.45}.admin-category-row.is-drop-target,.admin-symbol-row.is-drop-target{border-color:#3d5a80;background:#edf4ff;box-shadow:inset 3px 0 #3d5a80}.admin-state-tags span{border:1px solid #ded6ca;border-radius:999px;background:#f8f4ec;padding:4px 8px;color:#6b6258;font-size:12px}.admin-state-tags span.ok{border-color:#afc79a;background:#edf4e4;color:#3f612c}.admin-state-tags span.danger{border-color:#d59b8f;background:#fff1ee;color:#a73522}.admin-state-tags small{width:100%;color:#7b7165}.admin-category-table button.danger,.admin-symbol-table button.danger{border-color:#d59b8f;color:#a73522}.admin-empty-panel{max-width:640px}.admin-settings-panel{max-width:720px}.admin-legal-panel{width:100%}.admin-legal-header,.admin-legal-header-actions,.admin-legal-document-tabs,.admin-legal-section-card-head,.admin-legal-preview-title{display:flex;align-items:center}.admin-legal-header,.admin-legal-preview-title{justify-content:space-between;gap:16px}.admin-legal-header-actions,.admin-legal-document-tabs,.admin-legal-section-card-head>div{display:flex;gap:8px}.admin-legal-header-actions button,.admin-legal-document-tabs button,.admin-legal-section-card-head button,.admin-legal-add-section{min-height:36px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 12px;font-weight:700}.admin-legal-header-actions button.primary,.admin-legal-document-tabs button.active,.admin-legal-add-section{border-color:#b8caa8;background:#e9f0df}.admin-legal-section-card-head button.danger{border-color:#d59b8f;background:#fff1ee;color:#a73522}.admin-legal-document-tabs{border-bottom:1px solid #ded6ca;padding-bottom:12px}.admin-legal-meta{display:grid;grid-template-columns:minmax(220px,1fr) minmax(240px,1fr) auto;align-items:end;gap:12px}.admin-legal-meta label,.admin-legal-document-title,.admin-legal-section-card label{display:grid;gap:6px;color:#4c463f;font-weight:700}.admin-legal-meta input,.admin-legal-document-title input,.admin-legal-section-card input,.admin-legal-section-card textarea{width:100%;min-width:0;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:9px 10px}.admin-legal-meta input,.admin-legal-document-title input,.admin-legal-section-card input{height:40px}.admin-legal-section-card textarea{min-height:132px;resize:vertical;line-height:1.65}.admin-legal-meta>span{color:#6b6258;font-size:12px;padding-bottom:10px}.admin-legal-status{border-radius:8px;background:#f4efe6;padding:9px 12px}.admin-legal-workspace{display:grid;grid-template-columns:minmax(420px,.9fr) minmax(460px,1.1fr);align-items:start;gap:18px}.admin-legal-editor,.admin-legal-section-list{display:grid;gap:12px}.admin-legal-section-card{display:grid;gap:12px;border:1px solid #ded6ca;border-radius:10px;background:#f8f4ec;padding:12px}.admin-legal-section-card-head{justify-content:space-between;gap:12px}.admin-legal-section-card-head button{min-height:30px;padding:0 9px;font-size:12px}.admin-legal-add-section{justify-self:start}.admin-legal-preview-panel{position:sticky;top:0;display:grid;max-height:calc(100vh - 190px);grid-template-rows:auto minmax(0,1fr);border:1px solid #ded6ca;border-radius:10px;background:#eeeae0;overflow:hidden}.admin-legal-preview-title{border-bottom:1px solid #ded6ca;background:#f4efe6;padding:10px 12px}.admin-legal-preview-title a{color:#3d5a80;font-size:13px;text-decoration:none}.admin-legal-preview-scroll{min-height:0;overflow:auto;padding:14px}.admin-legal-preview-scroll .legal-document-preview{width:100%;border-radius:8px;padding:24px 28px;box-shadow:none}.admin-account-form{display:grid;gap:12px}.admin-recharge-form{border-top:1px solid #ded6ca;padding-top:16px}.admin-account-form label{display:grid;gap:6px;color:#4c463f;font-weight:700}.admin-account-form button{justify-self:start;min-height:42px;border:1px solid #b8caa8;border-radius:8px;background:#e9f0df;color:#263238;padding:0 16px;font-weight:700}.admin-update-notice-form textarea{width:100%;min-width:0;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:10px;resize:vertical;line-height:1.6}.admin-update-notice-time-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(160px,220px);gap:12px}.admin-update-notice-actions{display:flex;flex-wrap:wrap;gap:10px}.admin-update-notice-actions button.danger{border-color:#d59b8f;background:#fff1ee;color:#a73522}.admin-update-notice-actions button:disabled{opacity:.5;cursor:not-allowed}.admin-update-notice-state{display:grid;gap:6px;border:1px solid #ded6ca;border-radius:8px;background:#f8f4ec;color:#6b6258;padding:12px}.admin-update-notice-state.is-active{border-color:#b8caa8;background:#eef5e7;color:#3f612c}.update-notice-modal{border-top:5px solid #b7892e}.update-notice-time{border-radius:8px;background:#f4efe6;color:#6d5221!important;padding:9px 11px;font-weight:700}.admin-recharge-qr-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.admin-recharge-qr-row img{width:112px;height:112px;border:1px solid #d6cec1;border-radius:8px;background:#fffdf7;object-fit:contain;padding:6px}.admin-recharge-qr-row span{color:#6b6258}.admin-form-status{margin:0;color:#3d5a80}.app-shell{--left-panel-width: 286px;--right-panel-width: 292px;display:grid;position:relative;grid-template-columns:var(--left-panel-width) minmax(520px,1fr) var(--right-panel-width);width:100%;height:100%;background:#eeeae0}.app-shell.left-collapsed{--left-panel-width: 0px}.app-shell.right-collapsed{--right-panel-width: 0px}.app-shell.left-collapsed.right-collapsed{--left-panel-width: 0px;--right-panel-width: 0px}.side-toggle{position:absolute;top:50%;z-index:15;display:inline-flex;width:28px;height:46px;align-items:center;justify-content:center;border:1px solid rgba(184,175,160,.82);background:#fffdf7f5;color:#40505a;box-shadow:0 3px 10px #1f29331c;transform:translateY(-50%);transition:border-color .16s ease,background-color .16s ease,box-shadow .16s ease,color .16s ease}.side-toggle svg{width:15px;height:15px;stroke-width:1.8}.side-toggle:hover{border-color:#84936f;background:#f6f8f0;color:#334730;box-shadow:0 4px 12px #1f293324}.side-toggle:active{background:#edf2e5;box-shadow:0 2px 6px #1f29331f}.left-side-toggle{left:calc(var(--left-panel-width) - 14px);border-radius:0 7px 7px 0}.right-side-toggle{right:calc(var(--right-panel-width) - 14px);border-radius:7px 0 0 7px}.app-shell.left-collapsed .left-side-toggle{left:0}.app-shell.right-collapsed .right-side-toggle{right:0}.touch-tool-layer,.mobile-property-bar,.app-shell.phone-touch-layout .side-toggle{display:none}@media (max-width: 820px),(hover: none) and (pointer: coarse){.mobile-property-bar{position:fixed;right:0;bottom:0;left:0;z-index:68;display:grid;gap:6px;border-top:1px solid #d6cec1;background:#f8f5ecf7;box-shadow:0 -7px 22px #1f29331f;padding:7px 8px max(7px,env(safe-area-inset-bottom))}.mobile-text-property-panel{display:grid;order:1;gap:6px}.mobile-text-property-scroll{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.mobile-text-property-scroll::-webkit-scrollbar{display:none}.mobile-text-property-scroll .text-font-size-row{display:flex;flex:0 0 auto;gap:6px}.mobile-text-property-scroll .text-font-display{flex:0 0 78px;min-width:78px;padding:0 7px;font-size:12px}.mobile-text-property-scroll .text-size-inline{flex:0 0 88px;min-width:88px}.mobile-text-property-scroll .text-property-toolbar{flex:0 0 auto;flex-wrap:nowrap;border-bottom:0;padding-bottom:0}.mobile-property-bar>.mobile-property-sheet{order:2}.mobile-property-tabs{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none}.mobile-property-tabs::-webkit-scrollbar{display:none}.mobile-property-tabs button{display:inline-flex;min-width:56px;height:40px;flex:0 0 auto;align-items:center;justify-content:center;gap:4px;border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;color:#35424d;padding:0 8px;font-size:12px;white-space:nowrap}.mobile-property-tabs button.active{border-color:#71875d;background:#edf4e4;color:#315a2c}.mobile-stitch-symbol-strip{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:1px;scrollbar-width:none}.mobile-stitch-symbol-strip::-webkit-scrollbar{display:none}.mobile-stitch-symbol-strip button{display:grid;width:62px;min-width:62px;height:66px;grid-template-rows:42px 16px;place-items:center;gap:1px;border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;color:#5f574f;padding:3px 4px;font-size:11px;line-height:1}.mobile-stitch-symbol-strip button.active{border-color:#71875d;background:#edf4e4;color:#315a2c}.mobile-stitch-symbol-strip svg{width:38px;height:38px;overflow:visible}.mobile-stitch-symbol-strip span{max-width:54px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mobile-property-sheet{display:grid;gap:8px;border:1px solid #d8d0c3;border-radius:12px;background:#fffdf7;padding:9px}.mobile-property-stepper-grid,.mobile-property-action-row{display:grid;gap:7px}.mobile-property-stepper-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-line-scale-grid{display:grid;gap:7px}.mobile-line-scale-grid label{display:grid;gap:4px;color:#5f574f;font-size:12px}.mobile-property-action-row{grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-property-sheet .number-stepper input{min-width:0;height:42px;box-sizing:border-box;border:1px solid #c8c0b2;border-radius:10px;background:#fffdf7;color:#1f2933;padding:6px 8px;text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.mobile-property-sheet .number-stepper{grid-template-columns:30px minmax(0,1fr) 30px 30px;gap:4px;align-items:stretch}.mobile-property-sheet .number-stepper-button,.mobile-property-sheet .number-stepper-reset,.mobile-property-sheet .number-stepper-reset-placeholder{width:auto;height:42px;box-sizing:border-box;border-radius:10px}.mobile-property-sheet .number-stepper-button{font-size:22px}.mobile-property-sheet .number-stepper input::-webkit-inner-spin-button,.mobile-property-sheet .number-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.mobile-property-action-row button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:5px;border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;color:#35424d;padding:6px 8px;font-size:13px;white-space:nowrap}@media (min-width: 821px) and (max-width: 1180px){.app-shell:not(.right-collapsed) .canvas-status{right:calc(var(--responsive-right-panel-width) + 14px)}.app-shell.phone-touch-layout:not(.right-collapsed) .canvas-status{right:calc(var(--mobile-right-panel-width) + 8px)}}.mobile-property-action-row button svg{flex:0 0 auto}.mobile-property-action-row button.active{border-color:#71875d;background:#edf4e4;color:#315a2c;font-weight:700}.mobile-circle-rotation-control{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:8px;color:#5f574f;font-size:12px}.mobile-circle-rotation-control .number-stepper{min-width:0}.mobile-text-select{display:grid;gap:5px;color:#5f574f;font-size:12px}.mobile-text-select select{width:100%;height:38px;border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;color:#1f2933;padding:0 9px;font-size:14px}.mobile-position-pad{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.mobile-position-pad button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;color:#35424d;touch-action:none}.mobile-property-sheet .property-color-control{justify-content:center}.mobile-structure-controls{display:grid;gap:7px}.mobile-structure-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.mobile-structure-tabs button{min-width:0;min-height:34px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#5f574f;padding:5px 6px;font-size:12px;white-space:nowrap}.mobile-structure-tabs button.active{border-color:#71875d;background:#edf4e4;color:#315a2c;font-weight:700}.mobile-structure-group{display:grid;gap:0}.mobile-structure-group .mobile-property-stepper-grid>div{display:grid;gap:4px;color:#5f574f;font-size:12px}.mobile-property-bar+.touch-tool-layer{bottom:132px}.touch-tool-layer{position:fixed;right:14px;bottom:76px;z-index:70;display:block;width:50px;height:50px}.touch-tool-layer.is-positioned{right:auto;bottom:auto}.touch-tool-orb{position:relative;display:inline-flex;width:50px;height:50px;align-items:center;justify-content:center;border:1px solid rgba(104,120,91,.72);border-radius:50%;background:#fffdf7e6;color:#35495b;box-shadow:0 6px 18px #1f29333d;opacity:.78;touch-action:none;transition:opacity .15s ease,background-color .15s ease,color .15s ease,box-shadow .15s ease}.touch-tool-layer.is-open .touch-tool-orb,.touch-tool-orb:active,.touch-tool-orb.is-selecting{background:#edf4e4;color:#315a2c;box-shadow:0 7px 22px #1f293347;opacity:1}.touch-tool-count{position:absolute;top:-5px;right:-5px;display:inline-flex;min-width:20px;height:20px;align-items:center;justify-content:center;border:2px solid #fffdf7;border-radius:999px;background:#3d5a80;color:#fff;padding:0 5px;font-size:11px;font-weight:700}.touch-tool-menu{position:absolute;right:0;bottom:60px;display:grid;width:min(252px,calc(100vw - 24px));gap:8px;border:1px solid rgba(184,175,160,.92);border-radius:16px;background:#fffdf7fa;box-shadow:0 12px 34px #1f29333d;padding:10px}.touch-tool-menu.is-nudge{width:min(204px,calc(100vw - 24px));gap:6px;padding:9px}.touch-tool-layer.dock-left .touch-tool-menu{right:auto;left:0}.touch-tool-layer.opens-down .touch-tool-menu{top:60px;bottom:auto}.touch-tool-menu-header{display:flex;align-items:center;justify-content:space-between;gap:8px}.touch-tool-drag-handle{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.touch-tool-drag-handle:active{cursor:grabbing}.touch-tool-drag-handle button{cursor:pointer;touch-action:manipulation}.touch-tool-menu-header>div:first-child{display:grid;gap:2px}.touch-tool-menu-header strong{color:#253746;font-size:15px}.touch-tool-menu-header span{color:#736a60;font-size:11px}.touch-tool-header-actions{display:flex;gap:4px}.touch-tool-header-actions button{min-height:30px;border-radius:8px;padding:0 8px;font-size:12px}.touch-tool-mode-grid,.touch-tool-edit-grid{display:grid;gap:6px}.touch-tool-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.touch-tool-edit-grid{grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #e1dacd;padding-top:10px}.touch-tool-mode-grid button,.touch-tool-edit-grid button{display:inline-flex;min-width:0;min-height:42px;align-items:center;justify-content:center;gap:6px;border:1px solid #cbc3b6;border-radius:10px;background:#fffdf7;color:#35424d;padding:6px;font-size:13px}.touch-tool-mode-grid button.active,.touch-tool-edit-grid button.active{border-color:#71875d;background:#edf4e4;color:#315a2c;box-shadow:inset 0 0 0 1px #71875d2e}.touch-tool-mode-grid .touch-symbol-picker,.touch-tool-edit-grid .touch-nudge-entry{grid-column:1 / -1}.touch-nudge-pad{display:grid;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,44px);justify-content:center;gap:4px;padding:0}.touch-nudge-pad button,.touch-nudge-step{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:12px}.touch-nudge-pad button{border:1px solid #bdb4a5;background:#fffdf7;color:#2f4354;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.touch-nudge-pad button:active:not(:disabled){border-color:#71875d;background:#e8f0de;color:#315a2c;transform:scale(.96)}.touch-nudge-pad button:disabled{opacity:.38}.touch-nudge-up{grid-column:2;grid-row:1}.touch-nudge-left{grid-column:1;grid-row:2}.touch-nudge-step{grid-column:2;grid-row:2;border:1px solid #ddd5c8;background:#f4f0e7;color:#756c61;font-size:12px;font-weight:700}.touch-nudge-right{grid-column:3;grid-row:2}.touch-nudge-down{grid-column:2;grid-row:3}.touch-nudge-hint{margin:0;color:#736a60;font-size:12px;text-align:center}.touch-tool-edit-grid button.danger:not(:disabled){border-color:#d8a094;background:#fff2ef;color:#a43b29}.touch-tool-mode-grid button:disabled,.touch-tool-edit-grid button:disabled,.touch-tool-header-actions button:disabled{opacity:.38}}.symbol-panel,.property-panel{display:flex;min-height:0;flex-direction:column;border-color:#cfc7b8;background:#f8f5ec}.symbol-panel{overflow:hidden;border-right:1px solid #cfc7b8}.app-shell.left-collapsed .symbol-panel{border-right:0;visibility:hidden}.property-panel{overflow:hidden;border-left:1px solid #cfc7b8}.property-panel-scroll{display:flex;min-height:0;flex:1;flex-direction:column;gap:0;overflow-y:auto;padding:12px}.app-shell.right-collapsed .property-panel{overflow:hidden;border-left:0;padding:0;visibility:hidden}.brand{display:flex;align-items:center;justify-content:space-between;padding:14px 14px 10px}.brand h1{margin:0;font-size:20px;letter-spacing:0}.brand p{margin:3px 0 0;color:#6b6257;font-size:12px}.sidebar-section{position:relative;display:grid;flex:0 0 auto;gap:8px;border-top:0;padding:12px}.sidebar-section:before,.symbol-library-panel:before{position:absolute;top:0;right:12px;left:12px;border-top:1px solid #b7c8a9;content:""}.brand+.sidebar-section:before{display:none}.brand+.sidebar-section{padding-top:10px}.sidebar-section-title{display:flex;min-height:30px;align-items:center;justify-content:space-between;gap:8px}.sidebar-section-title strong{color:#263238;font-size:14px;white-space:nowrap}.sidebar-section-title span{overflow:hidden;color:#7b7165;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.search-box{display:flex;align-items:center;gap:8px;border:1px solid #cfc7b8;border-radius:8px;background:#fffdf7;padding:8px 10px;color:#6b6257}.search-box input{width:100%;border:0;outline:0;background:transparent;color:#1f2933}.property-color-control input{width:38px;height:30px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:3px}.color-swatch-row{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.color-swatch-row button{height:28px;min-width:0;border:2px solid #fffdf7;border-radius:999px;box-shadow:0 0 0 1px #c8c0b2}.color-swatch-row button.active{box-shadow:0 0 0 2px #3d5a80}.apply-color-button{display:inline-flex;min-height:34px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 10px}.apply-color-button:hover{border-color:#61764b;background:#f3f7ec}.category-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;overflow:hidden}.stitch-type-panel{gap:8px;padding-top:12px;padding-bottom:12px}.sidebar-section-toggle{display:flex;width:100%;min-height:30px;align-items:center;justify-content:space-between;border:0;border-radius:4px;background:transparent;color:#263238;padding:0;text-align:left}.sidebar-section-toggle:hover{color:#365f39}.sidebar-section-toggle:focus-visible{outline:2px solid #7d9cbc;outline-offset:3px}.sidebar-section-toggle strong{font-size:14px}.sidebar-section-toggle svg{flex:0 0 auto;color:#55704d;transform:rotate(-90deg);transition:transform .16s ease}.sidebar-section-toggle svg.is-open{transform:rotate(0)}.stitch-type-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.stitch-type-switch button{height:32px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;font-size:13px;font-weight:700}.stitch-type-switch button.active{border-color:#61764b;background:#eef4e7;color:#31401f}.category-strip button,.toolbar button,.button-row button,.arrange-row button{display:inline-flex;min-width:34px;height:34px;align-items:center;justify-content:center;gap:6px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238}.category-strip button{min-width:0;width:100%;height:28px;overflow:hidden;padding:0 5px;font-size:11px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.category-chip-placeholder{width:100%;height:28px;border:1px solid #ded8cc;border-radius:8px;background:linear-gradient(100deg,#f5f2eb 30%,#fffdf7,#f5f2eb 70%);background-size:220% 100%;animation:category-placeholder-shimmer 1.2s ease-in-out infinite}.category-load-state{grid-column:1 / -1;color:#9b4b3f;padding:5px 6px;text-align:center;font-size:11px}@keyframes category-placeholder-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@media (prefers-reduced-motion: reduce){.category-chip-placeholder{animation:none}}.category-filter-panel{gap:8px;padding-top:12px;padding-bottom:12px}.category-filter-actions{display:inline-flex;flex:0 0 auto;gap:5px}.category-filter-panel .text-action-button{min-height:28px;padding:3px 7px;font-size:11px}.custom-category-chip{position:relative;min-width:0}.custom-category-chip>button:first-child{display:inline-flex;width:100%;height:34px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;overflow:hidden;padding:0 8px;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.15}.custom-category-actions{position:absolute;top:3px;right:3px;display:inline-flex;gap:2px;opacity:0;pointer-events:none;transition:opacity .15s ease}.custom-category-chip:hover .custom-category-actions,.custom-category-chip:focus-within .custom-category-actions{opacity:1;pointer-events:auto}.custom-category-actions button{width:23px;min-width:23px;height:23px;border-radius:6px;background:#fffdf7f5;padding:0}.custom-category-actions button:hover{border-color:#61764b;background:#f3f7ec}.category-strip button.active,.toolbar button.active,.custom-category-chip>button.active,.symbol-card.active{border-color:#3d5a80;background:#e7eff6;color:#193553}.custom-category-panel{display:grid;flex:0 0 auto;gap:8px;border-top:1px solid #ded6ca;padding:12px 14px}.custom-category-heading{gap:10px}.custom-category-heading-toggle{display:inline-flex;min-width:0;align-items:center;gap:6px;border:0;background:transparent;padding:0;text-align:left}.custom-category-heading-toggle:after{content:"›";color:#7b7165;font-size:16px;line-height:1;transform:rotate(0);transition:transform .16s ease}.custom-category-panel.is-open .custom-category-heading-toggle:after{transform:rotate(90deg)}.custom-category-body{display:grid;gap:8px}.custom-category-title{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#4a5563;font-size:12px}.custom-category-title strong{color:#263238;font-size:13px}.text-action-button{display:inline-flex;min-height:28px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:6px;background:#fffdf7;color:#263238;padding:3px 7px;font-size:12px;line-height:1;white-space:nowrap}.text-action-button:hover{border-color:#61764b;background:#f3f7ec}.save-selection-symbol-button{display:inline-flex;min-height:30px;align-items:center;justify-content:center;gap:6px;border:1px solid #9fbc8b;border-radius:8px;background:#f1f8ea;color:#284d21;padding:0 10px;font-size:12px;font-weight:800;white-space:nowrap}.save-selection-symbol-button:before{display:none}.save-selection-symbol-button.is-combinable{animation:save-symbol-text-pulse 1.15s ease-in-out infinite}.save-selection-symbol-button:hover{border-color:#5d8a45;background:#e5f2d9}@keyframes save-symbol-text-pulse{0%,to{color:#284d21;text-shadow:none}50%{color:#1f8a2f;text-shadow:0 0 10px rgba(66,187,67,.42)}}.custom-category-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.custom-category-form{display:grid;grid-template-columns:minmax(0,1fr) 42px;gap:8px}.custom-category-form input{min-width:0;height:38px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 9px}.custom-category-form button,.icon-button{display:inline-flex;width:42px;height:38px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238}.custom-category-form button:hover,.icon-button:hover,.custom-category-chip>button:first-child:hover{border-color:#61764b;background:#f3f7ec}.symbol-library-panel{position:relative;display:grid;flex:1 1 auto;min-height:0;grid-template-rows:auto auto minmax(0,1fr);gap:8px;border-top:0;padding:10px 0 0}.symbol-library-panel>.sidebar-section-title{position:relative;z-index:12;padding:0 12px}.symbol-library-actions{display:inline-flex;min-width:0;align-items:center;gap:4px;flex:0 0 auto}.symbol-library-color-control{position:static;display:inline-flex;flex:0 0 auto}.symbol-library-color-button{width:28px;height:28px;flex:0 0 auto;border:1px solid #c8c0b2;border-radius:8px;box-shadow:inset 0 0 0 4px #fffdf7;padding:0}.symbol-library-color-popover{position:absolute;top:calc(100% + 8px);right:14px;z-index:50;display:grid;width:min(210px,calc(100% - 28px));gap:10px;border:1px solid #d8d0c2;border-radius:10px;background:#fffdf7;box-shadow:0 12px 30px #26323829;padding:10px}.symbol-library-color-picker{width:100%;height:34px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:3px}.symbol-library-color-swatches{grid-template-columns:repeat(6,1fr);gap:7px}.symbol-library-actions .save-selection-symbol-button{min-height:28px;padding:0 6px;font-size:11px}.symbol-library-actions .text-action-button{padding:3px 6px;font-size:11px}.symbol-library-search{margin:0 12px}.symbol-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:102px;align-content:start;min-height:0;gap:8px;overflow:auto;padding:4px 12px 14px;scrollbar-gutter:stable}.symbol-empty-state{grid-column:1 / -1;min-height:86px;display:grid;place-items:center;border:1px dashed #c8c0b2;border-radius:8px;background:#fffdf7;color:#7b7166;padding:12px;text-align:center;font-size:12px;line-height:1.5}.symbol-empty-state.is-error{border-color:#d8a094;background:#fff7f4;color:#9b4b3f}.symbol-card{display:grid;position:relative;height:102px;min-height:102px;grid-template-rows:64px auto;align-items:center;justify-items:center;border:1px solid #d3cabd;border-radius:8px;background:#fffdf7;padding:7px 6px;color:#243447}.symbol-category-toggle{position:absolute;top:5px;right:5px;display:inline-flex;height:22px;align-items:center;border:1px solid #c8c0b2;border-radius:999px;background:#fffdf7f0;color:#4a5563;padding:0 6px;font-size:10px;font-weight:700;opacity:0;transition:opacity .16s ease,border-color .16s ease,background .16s ease}.symbol-card:hover .symbol-category-toggle,.symbol-card.active .symbol-category-toggle,.symbol-category-toggle.is-saved,.symbol-category-toggle.is-open{opacity:1}.symbol-category-toggle.is-saved,.symbol-category-toggle.is-open{border-color:#61764b;background:#edf4e4;color:#2f5131}.symbol-category-toggle:disabled{opacity:0}.symbol-category-menu{position:fixed;z-index:80;display:grid;width:220px;max-height:240px;gap:6px;overflow:auto;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:8px;box-shadow:0 16px 34px #1f293333;transform:translate(-100%)}.symbol-category-menu-title{overflow:hidden;border-bottom:1px solid #e5ddd0;color:#243447;font-size:13px;font-weight:700;padding:2px 4px 7px;text-overflow:ellipsis;white-space:nowrap}.symbol-category-menu button{display:flex;width:100%;min-height:34px;align-items:center;justify-content:space-between;gap:8px;border:1px solid transparent;border-radius:6px;background:transparent;color:#263238;padding:5px 7px;text-align:left}.symbol-category-menu button:hover{border-color:#c8c0b2;background:#f7f3e9}.symbol-category-menu button.active{border-color:#61764b;background:#edf4e4}.symbol-category-menu span,.symbol-category-menu strong,.empty-category-menu{overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.symbol-category-menu span{flex:1 1 auto}.symbol-category-menu strong{flex:0 0 auto;color:#61764b}.empty-category-menu{display:block;color:#7b7165;padding:8px}.symbol-card:hover,.toolbar button:hover,.button-row button:hover,.arrange-row button:hover{border-color:#61764b}.symbol-card svg{width:58px;height:58px}.symbol-card span{width:100%;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.workspace{display:grid;min-width:0;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:58px 1fr}.topbar{display:flex;align-items:center;gap:12px;border-bottom:1px solid #cfc7b8;background:#f8f5ec;overflow-x:auto;padding:10px 14px}.toolbar{display:inline-flex;gap:6px;align-items:center;padding-right:10px;border-right:1px solid #d5cec2}.pen-handles{cursor:move}.toolbar:last-of-type{border-right:0}.toolbar button.file-action-button{width:auto;min-width:auto;padding:0 10px;font-size:12px;font-weight:700;white-space:nowrap}.app-shell:not(.phone-touch-layout) .topbar button,.app-shell:not(.phone-touch-layout) .topbar .member-badge{font-size:12px}.toolbar button.project-file-save-button.is-dirty{border-color:#8fac77;background:#e9f3df;color:#2f6b3c}.export-menu-trigger{display:inline-flex;height:34px;align-items:center;gap:5px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 8px 0 9px;font-size:12px;font-weight:700;white-space:nowrap}.export-menu-trigger:hover:not(:disabled),.export-menu-trigger[aria-expanded=true]{border-color:#61764b;background:#f4f8ec}.export-menu-trigger.is-disabled,.export-menu-trigger:disabled{cursor:not-allowed;opacity:.42}.export-menu-backdrop{position:fixed;z-index:119;top:0;right:0;bottom:0;left:0}.export-menu-dropdown{position:fixed;z-index:120;display:grid;width:176px;gap:4px;border:1px solid #ded6ca;border-radius:10px;background:#fffdf7;padding:6px;box-shadow:0 18px 42px #1f29332e}.export-menu-dropdown button{display:flex;min-height:36px;align-items:center;gap:8px;border:0;border-radius:7px;background:transparent;color:#263238;padding:0 9px;font-size:12px;font-weight:700;text-align:left}.export-menu-dropdown button:hover,.export-menu-dropdown button:focus-visible{background:#eef5e6;color:#375f32}.member-toolbar{display:inline-flex;align-items:center;gap:8px;margin-left:auto}.member-toolbar button,.member-badge{display:inline-flex;min-height:36px;align-items:center;justify-content:center;gap:6px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 10px;white-space:nowrap}.member-menu{position:relative}.member-menu-trigger{min-width:108px}.support-trigger{border-color:#caa23e;background:#fff7df;color:#8a5e10;font-weight:700}.member-dropdown{position:fixed;z-index:120;display:grid;width:248px;gap:10px;border:1px solid #ded6ca;border-radius:10px;background:#fffdf7;padding:12px;box-shadow:0 18px 42px #1f29332e}.member-dropdown:before{content:"";position:absolute;top:-8px;right:0;left:0;height:8px}.member-dropdown-title{display:grid;gap:2px;border-bottom:1px solid #e5ddd0;padding-bottom:8px}.member-dropdown-title strong{color:#1f2933}.member-dropdown-title span{color:#6b6258;font-size:12px}.member-dropdown button{width:100%;min-height:36px}.member-dropdown button.danger{border-color:#d59b8f;background:#fff1ee;color:#a73522}.member-account-modal{width:min(360px,calc(100vw - 32px))}.member-account-actions{display:grid;gap:8px}.member-account-actions button{min-height:42px;border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;color:#263238}.member-account-actions button.danger{border-color:#d59b8f;background:#fff1ee;color:#a73522}.mobile-export-menu-trigger,.mobile-top-save-symbol-button,.mobile-top-panel-trigger,.mobile-top-compact-panel{display:none}.mobile-file-actions-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:130;display:flex;align-items:flex-start;justify-content:center;background:#1f29336b;padding:calc(12px + env(safe-area-inset-top)) 12px 12px}.mobile-file-actions-sheet{display:grid;width:min(520px,100%);gap:14px;border:1px solid #ded6ca;border-radius:10px 10px 16px 16px;background:#fffdf7;padding:16px;box-shadow:0 -18px 48px #1f29333d}.mobile-file-actions-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mobile-file-actions-header h2,.mobile-file-actions-header p{margin:0}.mobile-file-actions-header p{margin-top:4px;color:#6b6258;font-size:13px}.mobile-file-actions-header>button{display:inline-flex;width:40px;height:40px;flex:0 0 auto;align-items:center;justify-content:center;border:1px solid #d6cec1;border-radius:10px;background:#fffdf7;color:#263238}.mobile-file-actions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mobile-file-actions-grid button{min-height:52px;border:1px solid #c8c0b2;border-radius:10px;background:#fffdf7;color:#263238;font-size:15px;font-weight:700}.mobile-file-open-label{display:inline-flex;min-height:52px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:10px;background:#fffdf7;color:#263238;cursor:pointer;font-size:15px;font-weight:700}.mobile-file-actions-grid button.is-primary{border-color:#8fac77;background:#e9f3df;color:#2f6b3c}.project-file-input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.canvas-wrap{position:relative;min-width:0;min-height:0;overflow:hidden;background:linear-gradient(90deg,rgba(38,50,56,.04) 1px,transparent 1px),linear-gradient(rgba(38,50,56,.04) 1px,transparent 1px),#e0dbd0;background-size:22px 22px}.editor-canvas{width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none;cursor:default}.editor-canvas.is-selecting{cursor:default}.editor-canvas.is-selecting .canvas-element,.editor-canvas.is-selecting .selection-controls{cursor:move}.editor-canvas.is-moving-element,.editor-canvas.is-moving-element *{cursor:move!important}.editor-canvas.is-stitching,.editor-canvas.is-stitching .canvas-element{cursor:crosshair}.editor-canvas.is-panning{cursor:grab}.editor-canvas.is-pasting{cursor:copy}.editor-canvas.is-arranging,.editor-canvas.is-arranging .canvas-element{cursor:crosshair}.editor-canvas.is-panning .canvas-element{cursor:grab}.text-edit-overlay{position:absolute;z-index:12;box-sizing:border-box;border:1px solid rgba(61,90,128,.62);border-radius:4px;outline:0;background:#fffdf7;padding:6px 12px;text-align:center;resize:none;overflow:hidden;transform-origin:center center;box-shadow:0 8px 22px #1f293324}.text-edit-overlay:focus{border-color:#2f6db3;background:#fffdf7f5}.canvas-element,.canvas-reference-image{cursor:move}.canvas-reference-image.is-locked{cursor:default;pointer-events:none}.canvas-reference-image-move-area rect{fill:#fff;fill-opacity:.001;cursor:move}.reference-image-panel{display:grid;gap:10px;margin-top:14px;border-top:1px solid #e1dbcf;padding-top:13px}.reference-image-heading,.reference-image-actions,.reference-image-toggles{display:flex;align-items:center;gap:8px}.reference-image-heading{justify-content:space-between}.reference-image-heading>div{display:grid;gap:2px}.reference-image-heading strong{color:#35424d;font-size:14px}.reference-image-heading span,.reference-image-empty,.reference-image-actions span{color:#7b7165;font-size:12px;line-height:1.4}.reference-image-heading button,.reference-image-actions button{display:inline-flex;min-height:32px;align-items:center;justify-content:center;gap:5px;border:1px solid #b9caaa;border-radius:7px;background:#eef5e7;color:#315a2c;padding:0 9px;font:inherit;font-size:12px}.reference-image-toggles{flex-wrap:wrap;color:#535c54;font-size:12px}.reference-image-toggles label{display:inline-flex;align-items:center;gap:4px}.reference-image-transform-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.reference-image-transform-controls .number-stepper{width:100%}.reference-image-transform-controls .number-stepper input{min-width:0}.reference-image-opacity{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;color:#535c54;font-size:12px}.reference-image-opacity input{min-width:0}.reference-image-opacity output{color:#315a2c;font-variant-numeric:tabular-nums}.reference-image-actions{justify-content:space-between}.reference-image-actions span{flex:1}.reference-image-actions .danger{border-color:#d5aaa2;background:#fff2ef;color:#a34033}.reference-crop-modal{display:grid;width:min(760px,calc(100vw - 32px));max-height:min(860px,calc(100vh - 32px));gap:14px;border:1px solid #c8c0b2;border-radius:10px;background:#fffdf7;padding:18px;box-shadow:0 24px 70px #1f29333d}.reference-crop-preview{width:100%;max-height:min(560px,calc(100vh - 260px));border:1px solid #d8d0c3;border-radius:8px;background:#f2eee5;touch-action:none}.reference-crop-frame{fill:transparent;stroke:#fffdf7;stroke-width:3;cursor:move}.reference-crop-handle{fill:#f8f5ec;stroke:#477847;stroke-width:4;cursor:nwse-resize}.reference-crop-handle-hit-area{fill:#fff;fill-opacity:.001;stroke:none;cursor:nwse-resize}.reference-crop-values{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#6f675c;font-size:13px}.reference-crop-values button{border:0;background:transparent;color:#315a2c;padding:3px 0;font:inherit}.mobile-reference-image-settings{display:grid;width:min(420px,calc(100vw - 32px));gap:14px;border:1px solid #c8c0b2;border-radius:10px;background:#fffdf7;padding:18px;box-shadow:0 24px 70px #1f29333d}.mobile-reference-image-toggles{justify-content:space-between}.mobile-reference-image-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.mobile-reference-image-actions button{display:inline-flex;min-height:38px;align-items:center;justify-content:center;gap:4px;border:1px solid #b9caaa;border-radius:8px;background:#eef5e7;color:#315a2c;padding:6px;font:inherit;font-size:13px}.mobile-reference-image-actions button.danger{border-color:#d5aaa2;background:#fff2ef;color:#a34033}.canvas-element.selected{filter:drop-shadow(0 2px 4px rgba(17,24,39,.18))}.editor-canvas.is-moving-selection .canvas-element.selected,.editor-canvas.is-moving-selection .canvas-element.multi-selected{transform:translate(var(--selection-dx, 0px),var(--selection-dy, 0px))}.editor-canvas.is-transforming-selection .canvas-element.selected{transform:var(--selection-transform);transform-box:view-box;transform-origin:0 0}.selection-marquee{fill:#3d5a8021;stroke:#3d5a80;stroke-dasharray:8 6;stroke-width:2}.selection-controls{cursor:move;opacity:.48;pointer-events:visiblePainted;transition:opacity .12s ease}.selection-controls:hover{opacity:.82}.editor-canvas.is-selection-control-adjusting .selection-controls,.editor-canvas.is-selection-control-adjusting .multi-selection-indicator{visibility:hidden;pointer-events:none}.transform-box{fill:none;stroke:#8c8c8c;stroke-width:.8;stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.multi-selection-outline{fill:#4a7ead0e;stroke:#74a0c7;stroke-width:1.5;stroke-dasharray:4 3;vector-effect:non-scaling-stroke}.multi-selection-outline.is-primary{fill:#2f6db317;stroke:#2f6db3;stroke-width:2.25;stroke-dasharray:none}.multi-selection-primary-dot{fill:#2f6db3;stroke:#fff;stroke-width:1.25;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px rgba(17,24,39,.22))}.rotate-stem{stroke:#8c8c8c;stroke-width:1.25}.rotate-handle{cursor:grab;pointer-events:all}.rotate-handle:active{cursor:grabbing}.rotate-handle circle{fill:#8d8d8d;stroke:#fff;stroke-width:1.25;filter:drop-shadow(0 1px 2px rgba(17,24,39,.18))}.rotate-handle path{fill:none;stroke:#fff;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.resize-handle{cursor:nwse-resize;pointer-events:all}.resize-handle-n,.resize-handle-s{cursor:ns-resize}.resize-handle-e,.resize-handle-w{cursor:ew-resize}.resize-handle-ne,.resize-handle-sw{cursor:nesw-resize}.resize-handle circle{fill:#fffdf7;stroke:#8c8c8c;stroke-width:1.25;filter:drop-shadow(0 1px 2px rgba(17,24,39,.18))}.canvas-status{position:absolute;right:14px;bottom:14px;display:flex;gap:8px;align-items:center}.canvas-status>span,.canvas-status-pill,.canvas-stitch-type-switch,.canvas-zoom-pill,.canvas-zoom-slider{border:1px solid rgba(38,50,56,.15);border-radius:8px;background:#fffdf7ed;padding:7px 10px;color:#3d3a35;font-size:13px;box-shadow:0 8px 24px #1f29331f}.canvas-status-pill,.canvas-stitch-type-switch,.canvas-zoom-pill{cursor:pointer;font:inherit}.canvas-stitch-type-switch{display:inline-flex;align-items:center;gap:4px}.canvas-stitch-type-picker{position:relative}.canvas-stitch-type-options{position:absolute;right:0;bottom:calc(100% + 8px);z-index:12;display:grid;width:100%;min-width:0;box-sizing:border-box;gap:4px;border:1px solid rgba(38,50,56,.15);border-radius:8px;background:#fffdf7f7;padding:5px;box-shadow:0 10px 28px #1f29332e}.canvas-stitch-type-options button{height:30px;border:1px solid transparent;border-radius:6px;background:transparent;color:#3d3a35;font:inherit;font-size:12px}.canvas-stitch-type-options button.active{border-color:#71875d;background:#edf4e4;color:#315a2c}.canvas-zoom-pill{user-select:none;-webkit-user-select:none;cursor:pointer}.canvas-missing-symbol-warning{border:1px solid #d9a26f;border-radius:8px;background:#fff3e5;color:#9a4f16;cursor:pointer;padding:7px 9px;font:inherit;font-size:13px;font-weight:700}.canvas-missing-symbol-warning:hover{border-color:#b86e2d;background:#ffead5}.canvas-zoom-slider{display:flex;align-items:center;width:min(180px,42vw);padding:6px 9px}.canvas-zoom-slider input{width:100%;margin:0;accent-color:#3d5a80;touch-action:none}.canvas-status.is-zoom-adjusting{flex-wrap:nowrap}.canvas-status.is-zoom-adjusting>:not(.canvas-zoom-slider):not(.canvas-zoom-pill){display:none}.canvas-status-pill,.canvas-zoom-pill{position:relative;transition:border-color .15s ease,background-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease}.canvas-status-pill:hover,.canvas-status-pill[aria-expanded=true],.canvas-stitch-type-switch:hover,.canvas-zoom-pill:hover,.canvas-zoom-pill.is-open{border-color:#3d5a80;background:#e7f0f9;color:#27496f;box-shadow:0 10px 28px #27496f38;transform:translateY(-1px)}.canvas-status-pill[aria-expanded=false]:hover:after,.canvas-zoom-pill:not(.is-open):hover:after{content:attr(data-tooltip);position:absolute;right:0;bottom:calc(100% + 8px);z-index:10;width:max-content;max-width:180px;border-radius:6px;background:#263238;padding:6px 8px;color:#fff;font-size:12px;font-weight:500;line-height:1.25;white-space:nowrap;box-shadow:0 8px 20px #1f293333;pointer-events:none}.canvas-stats-popover{position:absolute;right:0;bottom:calc(100% + 8px);z-index:8;width:min(320px,calc(100vw - 32px));border:1px solid #d6cec1;border-radius:10px;background:#fffdf7;box-shadow:0 18px 44px #1f29332e;padding:10px}.canvas-stats-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 2px 9px;color:#263238}.canvas-stats-title span{border:0;background:transparent;box-shadow:none;padding:0;color:#6b6258}.canvas-stats-body{display:grid;max-height:430px;overflow-y:auto;gap:10px;padding-right:2px}.layer-popover .canvas-stats-body{display:none}.layer-list-resize-handle{position:absolute;top:-9px;right:18px;left:18px;z-index:2;height:16px;cursor:ns-resize;touch-action:none}.layer-list-resize-handle:before{content:"";position:absolute;top:7px;right:38%;left:38%;height:3px;border-radius:999px;background:#b7b0a4}.layer-list-resize-handle:hover:before{background:#71875d}.layer-list{height:var(--layer-list-height, min(430px, calc(100vh - 220px) ));max-height:calc(100vh - 220px);overflow-y:auto;overflow-x:hidden;border-top:1px solid #e5ddd0}.layer-list-end-drop-zone{position:relative;min-height:28px}.layer-list.is-drop-at-end .layer-list-end-drop-zone:before{content:"";position:absolute;top:9px;right:4px;left:4px;height:3px;border-radius:999px;background:#779763;box-shadow:0 0 0 1px #f8f6f0}.layer-group-row button{min-width:0;height:30px;border:1px solid #c8c0b2;border-radius:7px;background:#fffdf7;color:#35424d}.layer-group-create-form{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:5px;margin:0 0 8px}.layer-group-assign-form{grid-template-columns:minmax(0,1fr) auto auto auto}.layer-group-start-form{display:flex;justify-content:flex-end}.layer-group-create-form select,.layer-group-create-form button{min-width:0;height:30px;border:1px solid #c8c0b2;border-radius:7px;background:#fffdf7;color:#35424d;font-size:12px}.layer-group-create-form select,.layer-group-create-form button{padding:0 7px}.layer-group-create-form button:hover:not(:disabled),.layer-group-row button:hover:not(:disabled){border-color:#71875d;background:#edf4e4;color:#315a2c}.layer-group{margin:6px 0;overflow:hidden;border:1px solid #dce5d4;border-radius:8px}.layer-group.is-selected{border-color:#6d9ac2;box-shadow:0 0 0 1px #3d5a803d}.layer-group.is-dragging{opacity:.42}.layer-group.is-drop-target,.layer-group.is-element-drop-target{position:relative;overflow:visible}.layer-group.is-drop-target:before,.layer-group.is-element-drop-target:before{content:"";position:absolute;z-index:3;top:-4px;right:4px;left:4px;height:3px;border-radius:999px;background:#779763;box-shadow:0 0 0 1px #f8f6f0;pointer-events:none}.layer-group.is-drop-target>.layer-group-row,.layer-group.is-element-drop-target>.layer-group-row{border-radius:7px 7px 0 0}.layer-group.is-drop-target>.layer-group-row:last-child,.layer-group.is-element-drop-target>.layer-group-row:last-child{border-radius:7px}.layer-group-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(4,30px);min-height:32px;background:#edf3e8}.layer-group-row.is-selected{background:#dceaf8;box-shadow:inset 3px 0 #3d7bb3}.layer-group-row.is-selected .layer-group-select{color:#27496f}.layer-group-row.is-selected .layer-group-drag-icon,.layer-group-row.is-selected .layer-group-select em{color:#3d5a80}.layer-group-row button{height:32px;border:0;border-radius:0}.layer-group-select{display:flex;min-width:0;align-items:center;gap:6px;padding:0 8px;text-align:left;color:#315a2c;font-weight:650;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.layer-group-select:active{cursor:grabbing}.layer-group-drag-icon{flex:0 0 auto;color:#71875d}.layer-group-select span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-group-select em{flex:0 0 auto;color:#71875d;font-size:10px;font-style:normal}.layer-group-action{border-left:0!important}.layer-group-members{padding:2px 0 2px 8px;background:#fcfbf8}.layer-group-member-row{grid-template-columns:minmax(0,1fr) 32px 32px;margin-left:12px;border-bottom:0;background:#fffdf7}.layer-member-label{display:flex;min-width:0;height:100%}.layer-member-label .layer-select{flex:1 1 auto}.layer-remove-from-group{flex:0 0 24px;display:grid;place-items:center;height:100%;padding:0;border:0;border-radius:0;background:transparent;color:#80907b}.layer-remove-from-group:hover{background:#f7ebe4;color:#a24d35}.layer-row{display:grid;grid-template-columns:minmax(0,1fr) 32px 32px;height:42px;align-items:center;border-bottom:0;background:#fffdf7}.layer-row.is-selected{background:#edf4fb}.layer-row.is-hidden{opacity:.52}.layer-row.is-locked{background:#f4f0e8}.layer-row.is-dragging{opacity:.42}.layer-row.is-drop-target{box-shadow:inset 0 2px #779763}.layer-select,.layer-action,.layer-drag-handle{min-width:0;height:100%;border:0;border-radius:0;background:transparent;color:#35424d}.layer-select{display:flex;align-items:center;gap:6px;overflow:hidden;padding:0 10px;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.layer-select span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-select:active{cursor:grabbing}.layer-action{border-left:0;font-size:12px}.layer-select:hover,.layer-action:hover{background:#eaf1e3}.layer-ungrouped-drag-icon{flex:0 0 auto;color:#80907b}.layer-unlock-icon{display:block;transform:rotate(-18deg) translate(1px,-1px);transform-origin:center}@media (max-width: 820px),(hover: none) and (pointer: coarse){.layer-group-assign-form{grid-template-columns:minmax(42px,1fr) auto auto auto;gap:3px}.layer-group-assign-form select,.layer-group-assign-form button{height:32px;padding:0 4px;font-size:11px;white-space:nowrap}.layer-group-row{grid-template-columns:minmax(0,1fr) repeat(4,38px);min-height:44px}.layer-group-row button{height:44px}.layer-row,.layer-group-member-row{grid-template-columns:minmax(0,1fr) 40px 40px;height:44px}.layer-group-members{padding-block:4px}.layer-remove-from-group{flex-basis:30px}}.canvas-stats-section{display:grid;gap:7px}.canvas-stats-subtitle{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 2px;color:#263238;font-size:12px}.canvas-stats-subtitle span{border:0;background:transparent;box-shadow:none;padding:0;color:#7b7165;font-size:12px}.canvas-stats-list{display:grid;gap:7px}.canvas-stat-select-button{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px;border:1px solid #d6cec1;border-radius:8px;background:#fffdf7;padding:8px 10px;color:#263238;text-align:left}.canvas-stat-select-button:hover{border-color:#3d5a80;background:#edf4fb}.canvas-stats-list span{overflow:hidden;min-width:0;border:0;background:transparent;box-shadow:none;padding:0;text-overflow:ellipsis;white-space:nowrap}.canvas-color-select-list{display:grid;gap:7px}.canvas-color-select-button{display:grid;grid-template-columns:24px minmax(0,1fr) auto;min-height:38px;align-items:center;gap:10px;border:1px solid #d6cec1;border-radius:8px;background:#fffdf7;padding:7px 9px;color:#263238;text-align:left}.canvas-color-select-button:hover{border-color:#3d5a80;background:#edf4fb}.canvas-stat-select-button.is-selected,.canvas-color-select-button.is-selected{border-color:#2f6db3;background:#e4f1fb;box-shadow:inset 0 0 0 1px #2f6db342}.canvas-stat-select-button.is-selected strong,.canvas-color-select-button.is-selected strong{color:#193553}.canvas-color-select-button span{overflow:hidden;min-width:0;border:0;background:transparent;box-shadow:none;padding:0;text-overflow:ellipsis;white-space:nowrap}.canvas-color-select-swatch{width:20px;height:20px;border:1px solid rgba(38,50,56,.22)!important;border-radius:6px;box-shadow:inset 0 0 0 2px #fffdf7ad!important}.property-panel .property-panel-section{margin:0;padding:0 0 14px;border:0;border-top:1px solid #b7c8a9;border-radius:0;background:transparent}.property-panel .property-panel-section.is-open{background:transparent}.property-panel .property-panel-section:first-child{border-top:0}.property-panel .property-panel-section:last-child{padding-bottom:0}.property-panel-footer{flex:0 0 auto;border-top:1px solid #d7d0c3;background:#f8f5ec;padding:6px 8px;text-align:center}.property-panel-footer nav{display:flex;align-items:center;justify-content:center;gap:10px}.property-panel-footer a{color:#6b6258;font-size:11px;line-height:1.35;text-decoration:none;white-space:nowrap}.property-panel-footer a:hover{color:#3d5a80;text-decoration:underline}.property-panel-footer .site-filing-number{display:inline-block;margin-top:0}.property-panel-footer .public-security-filing-number{display:inline-flex;align-items:center;gap:3px;margin-top:3px}.property-panel-footer .public-security-filing-number img{width:14px;height:14px;object-fit:contain}.property-panel h2{margin:0;font-size:15px;letter-spacing:0}.property-section-heading{line-height:1}.property-section-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:44px;padding:7px 0;border-radius:0;background:transparent;color:#263238;font-weight:inherit;text-align:left;cursor:pointer}.property-section-toggle:hover{color:#365f39}.property-section-toggle:focus-visible{border-radius:4px;outline:2px solid #7d9cbc;outline-offset:3px}.property-section-toggle-title,.property-section-toggle-state{display:inline-flex;align-items:center}.property-section-toggle-title{gap:8px;font-weight:700}.property-section-toggle-title svg{color:#527251}.property-section-toggle-state{gap:0;color:#8a8175;font-size:12px;font-weight:500}.property-section-toggle-state>span{display:none}.property-section-toggle-state svg{flex:0 0 auto;transform:rotate(-90deg);transition:transform .16s ease}.property-section-toggle-state svg.is-open{transform:rotate(0)}.property-panel-section.is-open .property-section-toggle{color:#263238}.property-panel-section.is-open .property-section-toggle-state{color:#55704d}.property-panel-section>:not(.property-section-heading){margin:10px 0 0}.canvas-shape-control{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;padding:3px;border:1px solid #c8c0b2;border-radius:8px;background:#f1ede5}.canvas-shape-control button{height:30px;border:0;border-radius:6px;background:transparent;color:#5f574f}.canvas-shape-control button:hover{background:#fffdf7}.canvas-shape-control button.active{background:#fffdf7;color:#173d64;box-shadow:0 1px 3px #43392d29}.field-grid{display:grid;gap:8px}.field-grid.two{grid-template-columns:1fr 1fr}.canvas-ring-field{grid-column:1 / -1}.field-grid label,.field-grid .field-control{display:grid;gap:5px;color:#5f574f;font-size:12px}.field-grid input{min-width:0;height:34px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:6px 8px;color:#1f2933}.number-stepper-field{min-width:0}.number-stepper{display:grid;grid-template-columns:27px minmax(30px,1fr) 27px 30px;gap:3px;min-width:0}.field-grid .number-stepper input{width:100%;height:30px;padding:6px;text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.field-grid .number-stepper input::-webkit-inner-spin-button,.field-grid .number-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.number-stepper-button,.number-stepper-reset,.number-stepper-reset-placeholder{display:inline-flex;height:30px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:7px;background:#fffdf7;color:#44515c;padding:0}.number-stepper-button{width:27px}.number-stepper-reset,.number-stepper-reset-placeholder{width:30px}.number-stepper-reset-placeholder{border-color:transparent;background:transparent}.number-stepper-button{font-size:18px;line-height:1;touch-action:manipulation;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.number-stepper-button:hover:not(:disabled),.number-stepper-button:focus-visible,.number-stepper-reset:hover:not(:disabled),.number-stepper-reset:focus-visible{border-color:#8aa077;background:#edf4e4;color:#315a2c;outline:none}.number-stepper-button:disabled,.number-stepper-reset:disabled{cursor:default;opacity:.38}.text-opacity-control{display:grid;gap:7px;min-width:0;color:#5f574f;font-size:12px}.text-property-panel{display:grid;gap:10px}.text-property-toolbar{display:flex;flex-wrap:nowrap;gap:4px;padding-bottom:9px;border-bottom:1px solid #ded6ca}.text-property-toolbar button{display:inline-flex;flex:0 0 32px;height:32px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#35424d;padding:0}.text-property-toolbar button:disabled{cursor:default;opacity:.36}.text-property-toolbar button.active,.text-property-toolbar button:hover{border-color:#71875d;background:#edf4e4;color:#315a2c}.text-property-toolbar button:disabled:hover{border-color:#c8c0b2;background:#fffdf7;color:#35424d}.stitch-property-toolbar{display:flex;gap:4px}.stitch-property-appearance{grid-column:1 / -1;display:grid;gap:7px}.stitch-property-toolbar button{display:inline-flex;flex:0 0 32px;height:32px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#35424d;padding:0}.stitch-property-toolbar button.active,.stitch-property-toolbar button:hover{border-color:#71875d;background:#edf4e4;color:#315a2c}.stitch-color-swatch-icon{display:block;width:17px;height:17px;border:1px solid rgb(31 41 51 / 20%);border-radius:5px}.text-font-size-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(104px,.9fr);gap:6px}.text-layout-icon{display:inline-flex;align-items:center;gap:0}.text-weight-icon{font-family:Arial,sans-serif;font-size:24px;font-weight:400;line-height:1}.text-weight-bold .text-weight-icon{font-weight:800}.text-font-display,.text-size-inline{display:inline-flex;height:36px;align-items:center;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#28333d;font-size:13px;font-weight:650}.text-font-display{flex:1 1 88px;min-width:88px;padding:0 9px;white-space:nowrap}select.text-font-display{cursor:pointer;-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}.text-size-inline{flex:1 1 88px;min-width:88px;justify-content:space-between}.text-size-inline button{flex:0 0 28px;height:34px;border:0;border-radius:7px;background:transparent;color:inherit;font-size:19px;line-height:1}.text-size-inline button:hover:not(:disabled){background:#edf4e4;color:#315a2c}.text-size-inline output{min-width:26px;text-align:center;font-variant-numeric:tabular-nums}.text-opacity-icon{display:grid;width:19px;grid-template-columns:repeat(3,5px);gap:2px}.text-opacity-icon i{width:5px;height:5px;border-radius:50%;background:#35424d}.text-opacity-icon i:nth-child(3n+1){opacity:1}.text-opacity-icon i:nth-child(3n+2){opacity:.6}.text-opacity-icon i:nth-child(3n){opacity:.22}.text-color-icon{position:relative;display:inline-flex;width:19px;height:23px;align-items:flex-start;justify-content:center;font-family:Georgia,serif;font-size:22px;font-weight:700;line-height:19px}.text-color-icon i{position:absolute;right:0;bottom:0;left:0;height:4px;border-radius:99px;background:linear-gradient(90deg,#ec4c55,#f5a23d 20%,#efd84b 38%,#55b968 55%,#3b9dd7 73%,#7554bd 88%,#df4f98)}.text-property-editor{width:100%;min-width:100%;min-height:76px;max-width:100%;box-sizing:border-box;resize:both;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#28333d;font:inherit;line-height:1.45;padding:9px 10px}.text-property-editor:focus{border-color:#71875d;box-shadow:0 0 0 3px #71875d24;outline:none}.text-property-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.text-property-actions button{height:36px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#35424d}.text-property-actions button.active{border-color:#71875d;background:#edf4e4;color:#315a2c;font-weight:700}.text-property-panel .number-stepper input{width:100%;height:30px;box-sizing:border-box;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:6px;color:#1f2933;text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.text-property-panel .number-stepper input::-webkit-inner-spin-button,.text-property-panel .number-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.text-opacity-row{display:grid;grid-template-columns:minmax(0,1fr) 54px;align-items:center;gap:10px}.text-opacity-slider{display:flex;align-items:center;position:relative;width:100%;height:8px;border-radius:999px}.text-opacity-slider input[type=range]{width:calc(100% + 28px);height:28px;margin:0 -14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.text-opacity-slider input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:transparent}.text-opacity-slider input[type=range]::-webkit-slider-thumb{width:28px;height:28px;margin-top:-10px;border:1px solid #c8c0b2;border-radius:50%;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fffdf7;box-shadow:0 2px 5px #1f29332e}.text-opacity-slider input[type=range]::-moz-range-track{height:8px;border-radius:999px;background:transparent}.text-opacity-slider input[type=range]::-moz-range-thumb{width:26px;height:26px;border:1px solid #c8c0b2;border-radius:50%;background:#fffdf7;box-shadow:0 2px 5px #1f29332e}.text-opacity-row output{display:inline-flex;height:34px;align-items:center;justify-content:center;border:1px solid #c8c0b2;border-radius:10px;background:#fffdf7;color:#1f2933;font-size:16px;font-variant-numeric:tabular-nums}.stitch-structure-controls{grid-column:1 / -1;display:grid;gap:10px;margin-top:4px;padding-top:10px;border-top:1px solid #ddd5c8}.stitch-structure-controls>strong{color:#33485d;font-size:13px}.stitch-structure-group{display:grid;gap:6px}.stitch-structure-group-title{color:#5f574f;font-size:12px;font-weight:600}.stitch-structure-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px}.stitch-structure-controls .number-stepper{grid-template-columns:24px minmax(40px,1fr) 24px 27px;gap:2px}.stitch-structure-controls .number-stepper-button{width:24px}.stitch-structure-controls .number-stepper-reset,.stitch-structure-controls .number-stepper-reset-placeholder{width:27px}.field-grid .stitch-structure-controls .number-stepper input{padding-inline:2px;font-size:11px}.toggle-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;color:#4f473e;font-size:13px}.toggle-row label{display:inline-flex;gap:6px;align-items:center}.snap-grid-note{margin:5px 0 0;color:#786f65;font-size:11px;line-height:1.4}.quick-arrange-panel{display:grid;gap:9px}.quick-arrange-mode-tabs{display:flex;gap:2px;border-bottom:1px solid #ded7cb}.quick-arrange-mode-tabs button{min-width:0;height:34px;flex:1 1 0;border:0;border-radius:0;background:transparent;color:#766f67;padding:0;font-size:13px;white-space:nowrap}.quick-arrange-mode-tabs button:hover{border-color:transparent;color:#2f3b43}.quick-arrange-mode-tabs button.active{box-shadow:inset 0 -3px #8b42f6;color:#20262c;font-weight:700}.quick-arrange-fields{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr) max-content;gap:6px}.quick-arrange-fields label{display:grid;min-width:0;gap:4px;color:#61594f;font-size:12px}.quick-arrange-confirm{min-width:48px;height:30px;align-self:end;border:1px solid #c8c0b2;border-radius:7px;background:#fffdf7;color:#263238;padding:0 7px;font-size:13px;font-weight:400}.quick-arrange-preview-symbols{opacity:.48}.quick-arrange-preview-guide{fill:none;stroke:#2f7fc1;stroke-width:1.5;stroke-dasharray:8 6;vector-effect:non-scaling-stroke}.quick-arrange-placement-hint{margin-top:4px}.quick-arrange-stepper{grid-template-columns:27px minmax(0,1fr) 27px}.quick-arrange-stepper input{width:100%;height:30px;min-width:0;box-sizing:border-box;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#1f2933;padding:6px;text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.quick-arrange-stepper input::-webkit-inner-spin-button,.quick-arrange-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.muted{margin:0;color:#736a60;font-size:13px;line-height:1.5}.property-editor{display:grid;gap:12px}.selection-tools{display:grid;gap:10px;border:0;border-radius:0;background:transparent;padding:0}.selection-summary strong,.selection-summary span{display:block}.selection-summary span{margin-top:3px;color:#6b6257;font-size:12px}.selection-tool-tabs{display:flex;gap:2px;border-bottom:1px solid #ded7cb}.selection-tool-tabs button{min-width:0;height:34px;flex:1 1 0;border:0;border-radius:0;background:transparent;color:#766f67;font-size:13px;white-space:nowrap}.selection-tool-tabs button:hover:not(:disabled){border-color:transparent;color:#2f3b43}.selection-tool-tabs button.active{box-shadow:inset 0 -3px #8b42f6;color:#20262c;font-weight:700}.selection-tool-tabs button:disabled{cursor:not-allowed;color:#c9c3ba}.selection-tool-content{display:grid;gap:8px;min-height:48px}.circle-radius-control{display:grid;gap:7px;min-width:0;color:#5f574f;font-size:13px}.circle-radius-row{display:grid;grid-template-columns:minmax(0,1fr) 66px;align-items:center;gap:10px}.circle-radius-slider{display:flex;align-items:center;position:relative;width:100%;height:8px;border-radius:999px}.circle-radius-slider input[type=range]{width:calc(100% + 28px);height:28px;margin:0 -14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.circle-radius-slider input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:999px;background:transparent}.circle-radius-slider input[type=range]::-webkit-slider-thumb{width:28px;height:28px;margin-top:-10px;border:1px solid #c8c0b2;border-radius:50%;background:#fffdf7;box-shadow:0 2px 5px #1f29332e;-webkit-appearance:none;-moz-appearance:none;appearance:none}.circle-radius-slider input[type=range]::-moz-range-track{height:8px;border-radius:999px;background:transparent}.circle-radius-slider input[type=range]::-moz-range-thumb{width:26px;height:26px;border:1px solid #c8c0b2;border-radius:50%;background:#fffdf7;box-shadow:0 2px 5px #1f29332e}.circle-radius-row input[type=number]{width:100%;height:34px;border:1px solid #c8c0b2;border-radius:14px;background:#fffdf7;color:#1f2933;padding:0 8px;text-align:center;font-size:16px}.multi-stitch-controls .number-stepper{display:grid;margin-top:0}.multi-stitch-controls .stitch-structure-grid .field-control{grid-template-columns:minmax(0,1fr);align-items:stretch;gap:4px}.multi-color-row,.property-color-control{display:grid;gap:8px}.multi-color-row{grid-template-columns:1fr}.property-color-control{grid-template-columns:42px minmax(0,1fr);align-items:center}.property-color-swatches{grid-template-columns:repeat(6,minmax(0,1fr))}.color-control-field{grid-column:1 / -1}.multi-stitch-controls{display:grid;gap:8px}.selection-property-controls{margin-top:2px;padding-top:12px;border-top:1px solid #ddd5c8}.multi-stitch-controls label,.multi-stitch-controls .field-control{display:grid;grid-template-columns:74px minmax(0,1fr);align-items:center;gap:8px;color:#5f574f;font-size:12px}.multi-stitch-controls input[type=number]{min-width:0;height:34px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#1f2933;padding:0 8px}.multi-stitch-controls .number-stepper input{width:100%;height:30px;padding:6px;text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.multi-stitch-controls .number-stepper input::-webkit-inner-spin-button,.multi-stitch-controls .number-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.selected-title{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:center}.selected-title svg{width:58px;height:58px;border:1px solid #d4ccbf;border-radius:8px;background:#fffdf7}.selected-title strong,.selected-title span{display:block}.selected-title span{margin-top:3px;color:#6b6257;font-size:12px}.selected-title-name{display:grid;min-width:0;align-content:center;justify-items:start;gap:8px}.selected-title-name strong{font-size:20px;line-height:1.2}.selected-title-editor-button{display:inline-flex;min-height:28px;flex:0 0 auto;align-items:center;gap:5px;border:1px solid #d4ccbf;border-radius:8px;background:#fffdf7;color:#3f4d43;padding:0 8px;font-size:13px}.custom-stitch-editor-backdrop{z-index:70;padding:16px}.custom-stitch-editor-modal{display:grid;grid-template-rows:auto auto minmax(280px,1fr) auto;width:min(980px,calc(100vw - 32px));height:min(760px,calc(100vh - 32px));border:1px solid #ded6ca;border-radius:14px;overflow:hidden;background:#fffdf7;box-shadow:0 24px 70px #1f293347}.custom-stitch-editor-header,.custom-stitch-editor-toolbar{display:flex;align-items:center;gap:9px;padding:14px 18px;border-bottom:1px solid #e7e0d5}.custom-stitch-editor-header{justify-content:space-between}.custom-stitch-editor-header h2{margin:0;font-size:20px}.custom-stitch-editor-zoom{border:1px solid #d8d0c3;border-radius:7px;background:#fffdf7;height:38px;padding:0 9px;color:#61764b;font-size:13px;font-weight:700}.custom-stitch-editor-toolbar{flex-wrap:wrap;padding-block:10px;background:#fbf8f1}.custom-stitch-editor-toolbar select,.custom-stitch-editor-toolbar button{min-height:34px;border:1px solid #d8d0c3;border-radius:8px;background:#fffdf7;color:#3f4d43;padding:0 10px}.custom-stitch-editor-toolbar button.icon-only{width:34px;justify-content:center;padding:0}.custom-stitch-editor-toolbar button.is-active{border-color:#8ba16f;background:#edf5e7;color:#436332}.custom-stitch-editor-symbol-picker{position:relative}.custom-stitch-editor-symbol-menu{position:absolute;z-index:2;top:calc(100% + 6px);left:0;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(286px,calc(100vw - 44px));max-height:min(420px,calc(100vh - 190px));gap:4px;border:1px solid #d8d0c3;border-radius:9px;background:#fffdf7;padding:5px;box-shadow:0 12px 28px #3d332729}.custom-stitch-editor-symbol-menu input{width:100%;min-height:32px;padding:0 9px}.custom-stitch-editor-symbol-menu-list{min-height:0;overflow-y:auto;padding-right:2px}.custom-stitch-editor-symbol-menu-list section{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px}.custom-stitch-editor-symbol-menu-list section+section{margin-top:8px}.custom-stitch-editor-symbol-menu-list strong{grid-column:1 / -1;color:#61764b;font-size:12px;padding:3px 6px 1px}.custom-stitch-editor-symbol-menu-list p{color:#867d70;font-size:12px;margin:8px 6px}.custom-stitch-editor-symbol-menu button{justify-content:flex-start}.custom-stitch-editor-symbol-menu .custom-stitch-editor-symbol-option{display:grid;grid-template-rows:44px 16px;place-items:center;align-content:center;justify-content:center;min-width:0;min-height:65px;gap:2px;padding:4px 2px;color:#37463e;text-align:center}.custom-stitch-editor-symbol-option svg{display:block;width:42px;height:42px;margin:auto;overflow:visible}.custom-stitch-editor-symbol-option span{display:flex;align-items:center;justify-content:center;width:100%;min-width:0;overflow:hidden;color:#5d625a;font-size:10px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.custom-stitch-editor-symbol-option:hover span,.custom-stitch-editor-symbol-option:focus-visible span{color:#2e6a3c}.custom-stitch-editor-zoom-slider{position:absolute;right:0;bottom:46px;width:min(220px,calc(100vw - 104px));accent-color:#61764b}.custom-stitch-editor-toolbar button{display:inline-flex;align-items:center;gap:5px}.custom-stitch-editor-toolbar button:disabled{cursor:not-allowed;opacity:.45}.custom-stitch-editor-rotation-control,.custom-stitch-editor-scale-control{display:inline-flex;align-items:center;gap:6px;color:#3f4d43;font-size:13px;font-weight:700}.custom-stitch-editor-rotation-control{margin-left:3px;border-left:1px dashed #bfb6a8;padding-left:10px}.custom-stitch-editor-rotation-control .number-stepper,.custom-stitch-editor-scale-control .number-stepper{grid-template-columns:34px 64px 34px 34px;gap:4px}.custom-stitch-editor-rotation-control .number-stepper input,.custom-stitch-editor-scale-control .number-stepper input{width:64px;height:34px;border:1px solid #c8c0b2;border-radius:7px;background:#fffdf7;color:#35424d;padding:4px;text-align:center;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.custom-stitch-editor-rotation-control .number-stepper-button,.custom-stitch-editor-rotation-control .number-stepper-reset,.custom-stitch-editor-rotation-control .number-stepper-reset-placeholder,.custom-stitch-editor-scale-control .number-stepper-button,.custom-stitch-editor-scale-control .number-stepper-reset,.custom-stitch-editor-scale-control .number-stepper-reset-placeholder{width:34px;height:34px}.custom-stitch-editor-rotation-control .number-stepper input::-webkit-inner-spin-button,.custom-stitch-editor-rotation-control .number-stepper input::-webkit-outer-spin-button,.custom-stitch-editor-scale-control .number-stepper input::-webkit-inner-spin-button,.custom-stitch-editor-scale-control .number-stepper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-stitch-editor-canvas-wrap{position:relative;min-height:0;padding:16px;background:#f5f1e8}.custom-stitch-editor-canvas{display:block;width:100%;height:100%;min-height:280px;border:1px solid #ded6ca;border-radius:10px;background:#fffdf7;touch-action:none}.custom-stitch-editor-canvas.is-panning{cursor:grab}.custom-stitch-editor-canvas.is-panning:active{cursor:grabbing}.custom-stitch-editor-canvas.is-pasting,.custom-stitch-editor-canvas.is-pasting *{cursor:copy}.custom-stitch-editor-axis,.custom-stitch-editor-static-symbol,.custom-stitch-editor-static-symbol *{cursor:move}.custom-stitch-editor-static-selection-box{fill:#61764b06;stroke:#61764b;stroke-width:.45;stroke-opacity:.45;stroke-dasharray:1.6 1.4}.custom-stitch-editor-canvas .is-selected>path{filter:drop-shadow(0 0 1.2px #839a66)}.custom-stitch-editor-marquee{fill:#63764b1f;stroke:#61764b;stroke-width:.8;stroke-dasharray:2 1.5;pointer-events:none}.custom-stitch-editor-overlay-actions{position:absolute;right:28px;bottom:28px;z-index:4;display:flex;align-items:center;gap:7px}.custom-stitch-editor-layer-trigger{display:inline-grid;width:38px;height:38px;place-items:center;border:1px solid #d4ccbf;border-radius:9px;background:#fffdf7;color:#3f4d43;box-shadow:0 5px 14px #3d332724}.custom-stitch-editor-layer-panel{position:absolute;right:28px;bottom:74px;z-index:3;display:grid;grid-template-rows:auto minmax(0,1fr);width:min(310px,calc(100% - 56px));height:min(320px,calc(100% - 90px));border:1px solid #d8d0c3;border-radius:10px;overflow:hidden;background:#fffdf7;box-shadow:0 12px 30px #3d33272e}.custom-stitch-editor-layer-panel header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e7e0d5;padding:8px 10px}.custom-stitch-editor-layer-list{min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-gutter:stable;padding:5px;touch-action:pan-y}.custom-stitch-editor-layer-row{display:grid;grid-template-columns:minmax(0,1fr) repeat(2,28px);align-items:center;gap:3px;border-radius:7px;padding:3px;touch-action:none;user-select:none;-webkit-user-select:none}.custom-stitch-editor-layer-row.is-selected{background:#edf5e7}.custom-stitch-editor-layer-row.is-dragging{opacity:.55}.custom-stitch-editor-layer-row.is-drop-target{outline:1px dashed #61764b;outline-offset:-1px}.custom-stitch-editor-layer-name{overflow:hidden;border:0;background:transparent;color:#35443b;padding:5px 6px;text-align:left;text-overflow:ellipsis;white-space:nowrap;touch-action:none;cursor:grab}.custom-stitch-editor-layer-name:active{cursor:grabbing}.custom-stitch-editor-layer-row .icon-button{display:inline-grid;width:28px;height:28px;place-items:center}.custom-stitch-editor-modal .modal-actions{margin:0;padding:12px 18px;border-top:1px solid #e7e0d5}@media (max-width: 720px){.custom-stitch-editor-backdrop{padding:0}.custom-stitch-editor-modal{width:100%;height:100%;height:var(--mobile-dialog-height, 100dvh);border:0;border-radius:0}.custom-stitch-editor-header,.custom-stitch-editor-toolbar{padding-inline:14px}.custom-stitch-editor-toolbar{gap:6px}.custom-stitch-editor-toolbar button{flex:1 1 auto;justify-content:center}.custom-stitch-editor-toolbar button.icon-only{flex:0 0 38px}.custom-stitch-editor-symbol-picker{flex:1 1 auto}.custom-stitch-editor-symbol-picker>button{width:100%}.custom-stitch-editor-title-row{gap:6px}.custom-stitch-editor-header h2{font-size:18px}.custom-stitch-editor-zoom-slider{width:min(135px,34vw)}.custom-stitch-editor-canvas-wrap{padding:10px}.custom-stitch-editor-modal .modal-actions{padding-inline:14px}}.button-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.button-row button{min-width:0;padding:0 8px;white-space:nowrap}.button-row button svg{flex:0 0 auto}.alignment-button-row button{min-width:0;gap:4px;padding:0 6px;font-size:14px;white-space:nowrap}.alignment-button-row button svg{flex:0 0 auto}.button-row button.active{border-color:#71875d;background:#edf4e4;color:#315a2c}.mirror-placement-preview{opacity:.55}.button-row .danger{border-color:#d59b8f;color:#a73522}.stats-list{display:grid;gap:7px;margin-bottom:12px}.stats-list div{display:flex;align-items:center;justify-content:space-between;border:1px solid #d6cec1;border-radius:8px;background:#fffdf7;padding:8px 10px;font-size:13px}.stats-list span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:grid;place-items:center;background:#1f293361;padding:20px}.member-login-modal{display:grid;width:min(440px,calc(100vw - 32px));gap:14px;border:1px solid #ded6ca;border-radius:10px;background:#fffdf7;padding:16px;box-shadow:0 24px 60px #1f29333d}.layer-group-name-modal{display:grid;width:min(360px,calc(100vw - 32px));gap:14px;border:1px solid #ded6ca;border-radius:10px;background:#fffdf7;padding:16px;box-shadow:0 24px 60px #1f29333d}.layer-group-name-modal label{display:grid;gap:6px;color:#4c463f;font-weight:700}.layer-group-name-modal input{min-width:0;height:40px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 10px}.vip-recharge-modal{display:grid;width:min(520px,calc(100vw - 32px));gap:14px;border:1px solid #ded6ca;border-radius:10px;background:#fffdf7;padding:16px;box-shadow:0 24px 60px #1f29333d}.vip-pay-section{display:grid;grid-template-columns:168px 1fr;gap:14px;align-items:center;border:1px solid #ded6ca;border-radius:8px;background:#f8f4ec;padding:12px}.vip-pay-code{display:grid;place-items:center;aspect-ratio:1;border:1px solid #d6cec1;border-radius:8px;background:#fffdf7;color:#7b7165;padding:10px;text-align:center}.vip-pay-code img{width:100%;height:100%;object-fit:contain}.vip-pay-section p{margin:6px 0 0;color:#5f574f}.member-login-modal label{display:grid;gap:6px;color:#4c463f;font-weight:700}.member-login-modal input{min-width:0;height:40px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 10px}.member-login-modal .member-agreement-check{display:flex;align-items:flex-start;gap:8px;font-size:13px;font-weight:400;line-height:1.55}.member-agreement-check input{width:16px;height:16px;flex:0 0 auto;margin-top:2px;padding:0}.member-agreement-check a{color:#3d5a80;text-decoration:none}.member-agreement-check a:hover{text-decoration:underline}.member-delete-warning{margin:0;border:1px solid #e0ada4;border-radius:8px;background:#fff1ee;color:#8e2f20;padding:10px 12px;font-size:13px;line-height:1.6}.project-import-warning{margin:0;border:0;border-radius:10px;background:#f6f3ec;color:#5f5132;padding:9px 12px;font-size:13px;line-height:1.55}.project-import-modal{width:min(380px,calc(100vw - 32px));gap:10px;padding:18px 20px 20px}.project-import-modal .symbol-manager-header{align-items:center}.project-import-modal .symbol-manager-header h2{margin:0;font-size:17px;letter-spacing:.01em}.project-import-close{width:30px;height:30px;border:0;border-radius:50%;background:transparent;color:#6b6258}.project-import-close:hover{background:#f1ede5}.project-import-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-import-actions .member-login-submit{grid-column:1 / -1}.project-import-modal .project-import-actions .member-login-submit{grid-column:auto}.project-import-modal .project-import-actions>:only-child{grid-column:1 / -1}.project-import-actions button{min-height:44px}.project-import-modal .project-import-actions .member-login-submit,.project-import-modal .project-import-continue{border-radius:10px;font-size:14px}.project-import-continue{display:grid;place-content:center;gap:1px;border:1px solid #d8d0c3;background:#fffdf7;color:#4d574b;font-weight:700;line-height:1.15}.project-import-continue small{color:#8b8174;font-size:10px;font-weight:500}.member-login-submit.member-delete-submit{border-color:#d59b8f;background:#fff1ee;color:#a73522}.member-code-row{display:grid;grid-template-columns:minmax(0,1fr) 120px;gap:8px}.member-code-row button,.member-login-submit{display:inline-flex;min-height:40px;align-items:center;justify-content:center;border:1px solid #b8caa8;border-radius:8px;background:#e9f0df;color:#263238;padding:0 14px;font-weight:700}.member-dev-code,.member-status-text{margin:0;border-radius:8px;padding:8px 10px;font-size:13px}.legal-page{width:100%;height:100%;overflow-y:auto;background:#f3f0e8;padding:32px 20px 64px}.legal-document{width:min(880px,100%);margin:0 auto;border:1px solid #ded6ca;border-radius:12px;background:#fffdf7;padding:32px clamp(20px,5vw,54px);box-shadow:0 16px 40px #1f293314}.legal-back-link{color:#3d5a80;text-decoration:none}.legal-document h1{margin:18px 0 6px;font-size:30px}.legal-effective-date{margin:0 0 28px;color:#7b7165;font-size:13px}.legal-document section{margin-top:26px}.legal-document h2{margin:0 0 10px;font-size:18px}.legal-document p{margin:8px 0 0;color:#4c463f;line-height:1.8;white-space:pre-line}.member-dev-code{border:1px solid #caa23e;background:#fff7df;color:#8a5e10}.member-status-text{background:#f4efe6;color:#5f574f}.confirm-modal{width:min(420px,100%);border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:20px;box-shadow:0 24px 70px #1f29333d}.confirm-modal h2{margin:0 0 10px;font-size:20px}.confirm-modal p{margin:0;color:#5f574f;line-height:1.55}.confirm-modal .local-draft-note{margin-top:10px;font-size:13px}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.modal-actions button{display:inline-flex;height:36px;align-items:center;justify-content:center;gap:6px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:0 14px;color:#263238}.modal-actions button.primary{border-color:#b8caa8;background:#edf5e7;font-weight:700}.symbol-manager-modal{display:grid;width:min(1120px,calc(100vw - 32px));max-height:min(820px,calc(100vh - 32px));grid-template-rows:auto auto auto minmax(0,1fr);gap:16px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:18px;box-shadow:0 24px 70px #1f29333d}.category-manager-modal{display:grid;width:min(640px,100%);max-height:min(720px,calc(100vh - 40px));grid-template-rows:auto auto minmax(0,1fr);gap:14px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:18px;box-shadow:0 24px 70px #1f29333d}.category-manager-create{grid-template-columns:minmax(0,1fr) 42px}.managed-category-list{display:grid;align-content:start;gap:8px;overflow:auto}.managed-category-row{display:grid;grid-template-columns:minmax(0,1fr) 54px auto auto;align-items:center;gap:8px;border:1px solid #ded6ca;border-radius:8px;background:#fffdf7;padding:8px}.managed-category-row.is-hidden{opacity:.62}.managed-category-row input{min-width:0;height:36px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 9px}.managed-category-row span{color:#7b7165;font-size:12px;text-align:center}.managed-category-row button{display:inline-flex;height:36px;align-items:center;justify-content:center;gap:6px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 10px}.managed-category-row .danger{border-color:#d59b8f;color:#a73522}.symbol-manager-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.symbol-manager-header h2{margin:0 0 5px;font-size:20px}.symbol-manager-header p{margin:0;color:#6b6258;font-size:13px}.symbol-manager-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.admin-status{display:inline-flex;min-height:30px;align-items:center;justify-content:center;border:1px solid #ded6ca;border-radius:999px;background:#f8f4ec;color:#6b6258;font-size:12px;font-weight:700;padding:0 10px;white-space:nowrap}.admin-status.is-active{border-color:#afc79a;background:#edf4e4;color:#3f612c}.symbol-import-panel{display:grid;grid-template-columns:auto minmax(220px,1fr) minmax(160px,220px) auto 54px;align-items:center;gap:8px;border:1px solid #ded6ca;border-radius:8px;background:#f8f4ec;padding:10px}.symbol-import-panel input,.symbol-import-panel select,.symbol-manager-search input,.managed-symbol-row input,.managed-symbol-row select{min-width:0;height:36px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 9px}.symbol-import-panel button,.managed-symbol-row button{display:inline-flex;height:36px;align-items:center;justify-content:center;gap:6px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;color:#263238;padding:0 10px}.symbol-import-panel button:disabled{opacity:.45}.managed-symbol-row button:disabled{cursor:not-allowed;opacity:.42}.symbol-import-preview{width:42px;height:42px}.symbol-manager-search{display:flex;align-items:center;gap:8px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:0 10px}.symbol-manager-search input{flex:1;border:0;background:transparent}.managed-symbol-list{display:grid;align-content:start;gap:6px;overflow:auto;padding-right:4px}.managed-symbol-header-row,.managed-symbol-row{display:grid;grid-template-columns:38px 64px minmax(150px,1fr) 78px minmax(140px,200px) 68px 74px 112px 76px;align-items:center;gap:8px}.managed-symbol-header-row{position:sticky;top:0;z-index:1;border:1px solid #ded6ca;border-radius:8px;background:#f4efe6;color:#6b6258;font-size:12px;font-weight:700;padding:8px 10px}.managed-symbol-row{border:1px solid #ded6ca;border-radius:8px;background:#fffdf7;min-height:72px;padding:8px 10px;transition:border-color .16s ease,background .16s ease,opacity .16s ease}.managed-symbol-row.is-hidden{opacity:.62}.managed-symbol-row.is-dragging{opacity:.46}.managed-symbol-row.is-drop-target{border-color:#3d5a80;background:#eef5fb;box-shadow:inset 0 3px #3d5a80}.managed-symbol-preview{width:54px;height:54px}.managed-symbol-row span{color:#7b7165;font-size:12px;text-align:center}.symbol-drag-handle{width:34px;padding:0;cursor:grab;color:#53616d}.symbol-drag-handle:active{cursor:grabbing}.symbol-source-badge{display:inline-flex;min-height:28px;align-items:center;justify-content:center;border:1px solid #ded6ca;border-radius:999px;background:#f8f4ec;color:#6b6258;font-size:12px}.symbol-source-badge.is-custom{border-color:#afc79a;background:#edf4e4;color:#3f612c}.symbol-secondary-action,.symbol-permanent-delete{width:100%;padding:0}.symbol-row-placeholder{min-height:1px}.managed-symbol-row .danger{border-color:#d59b8f;color:#a73522}.modal-actions button.danger{border-color:#d59b8f;background:#fff1ee;color:#a73522}@media (max-width: 1180px){.app-shell{--left-panel-width: 264px;--right-panel-width: 0px;--responsive-right-panel-width: min(292px, calc(100vw - 48px) );grid-template-columns:var(--left-panel-width) minmax(420px,1fr)}.app-shell.left-collapsed,.app-shell.left-collapsed.right-collapsed{--left-panel-width: 0px}.app-shell.right-collapsed{--right-panel-width: 0px}.right-side-toggle{position:fixed;right:calc(var(--responsive-right-panel-width) - 14px)}.app-shell.right-collapsed .right-side-toggle{right:0}.property-panel{position:fixed;top:0;right:0;bottom:0;z-index:14;display:flex;width:var(--responsive-right-panel-width);box-shadow:-8px 0 22px #1f29331f}.app-shell.right-collapsed .property-panel{display:none}.topbar{overflow-x:auto}.admin-legal-workspace{grid-template-columns:1fr}.admin-legal-preview-panel{position:static;max-height:760px}}@media (max-width: 820px),(hover: none) and (pointer: coarse){html,body,#root{overflow:hidden}.app-shell.phone-touch-layout .topbar{justify-content:flex-start;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;-webkit-overflow-scrolling:touch}.app-shell.phone-touch-layout .topbar::-webkit-scrollbar{display:none}.admin-shell{display:grid;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);height:100vh;height:100dvh;overflow:hidden}.admin-sidebar{display:block;gap:6px;overflow-x:auto;border-right:0;border-bottom:1px solid #d8d0c3;padding:8px;overscroll-behavior-x:contain}.admin-brand{margin-bottom:2px}.admin-brand strong{font-size:17px}.admin-brand span{font-size:12px}.admin-sidebar button,.admin-sidebar a{min-height:36px;justify-content:center;padding:0 9px;white-space:nowrap}.admin-sidebar a{margin-top:0}.admin-nav{width:max-content;min-width:100%;flex-direction:row;align-items:center;margin-top:8px}.admin-nav-group,.admin-nav-children{display:flex;gap:6px}.admin-nav-label{display:none}.admin-nav-children{border-left:0;margin-left:0;padding-left:0}.admin-nav-children button{gap:8px}.admin-main{min-height:0;gap:10px;overflow:auto;padding:10px}.admin-topbar{align-items:flex-start;padding:12px}.admin-topbar h1{font-size:21px}.admin-topbar button{flex:0 0 auto}.admin-login-card,.admin-panel{gap:10px;border-radius:8px;padding:12px}.admin-panel-title{display:grid;align-items:start;gap:4px}.admin-create-bar,.admin-library-transfer-bar,.admin-provenance-filters,.admin-member-filters{grid-template-columns:1fr;gap:8px}.admin-member-status-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-analytics-cards{grid-template-columns:minmax(0,1fr)}.admin-analytics-group-metrics button{padding-inline:6px}.admin-analytics-timeline span{font-size:9px}.admin-import-preview{justify-self:center}.admin-category-table,.admin-symbol-table,.admin-member-table{overflow:visible}.admin-symbol-head,.admin-member-head,.admin-member-symbol-head{display:none}.admin-category-row,.admin-symbol-row,.admin-member-row,.admin-member-category-row,.admin-member-symbol-row{grid-template-columns:1fr;align-items:stretch;gap:8px;padding:10px}.admin-category-row{grid-template-columns:34px minmax(0,1fr)}.admin-category-row>span,.admin-category-row>button{grid-column:1 / -1}.admin-symbol-row{grid-template-columns:34px 56px minmax(0,1fr)}.admin-symbol-row svg{width:50px;height:50px}.admin-symbol-row input,.admin-symbol-row select,.admin-provenance-tags,.admin-state-tags,.admin-row-actions{grid-column:1 / -1}.admin-member-row{grid-template-columns:1fr}.admin-member-row button,.admin-member-row select,.admin-member-row input,.admin-member-meta,.admin-member-online,.admin-user-type,.admin-member-library-unavailable{width:100%}.admin-row-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.admin-category-table button,.admin-symbol-table button,.admin-library-transfer-bar button,.admin-member-table button,.admin-member-category-row button,.admin-member-symbol-row button{width:100%;min-height:38px}.admin-drag-handle{width:32px;min-height:32px}.admin-settings-panel{max-width:none}.admin-update-notice-time-row{grid-template-columns:1fr}.admin-legal-header{align-items:stretch;flex-direction:column}.admin-legal-header-actions{display:grid;grid-template-columns:1fr 1fr}.admin-legal-meta{grid-template-columns:1fr}.admin-legal-meta>span{padding-bottom:0}.admin-legal-section-card-head{align-items:stretch;flex-direction:column}.admin-legal-section-card-head>div{display:grid;grid-template-columns:repeat(3,1fr)}.admin-legal-preview-scroll{padding:8px}.admin-legal-preview-scroll .legal-document-preview{padding:20px 16px}.admin-account-form button{width:100%;justify-self:stretch}.admin-recharge-form .field-grid.two{grid-template-columns:1fr}.admin-recharge-qr-row{display:grid;grid-template-columns:1fr}.admin-recharge-qr-row img{justify-self:center}.admin-member-library-modal{width:calc(100vw - 20px);max-height:calc(100vh - 20px);max-height:calc(100dvh - 20px);gap:12px;padding:12px}.admin-member-category-row,.admin-member-symbol-row{grid-template-columns:1fr}.admin-member-symbol-row svg{justify-self:center}.app-shell{--left-panel-width: 0px;--right-panel-width: 0px;--mobile-panel-width: min(286px, calc(100vw - 44px) );--mobile-right-panel-width: min(292px, calc(100vw - 44px) );position:fixed;top:0;right:0;bottom:0;left:0;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr);height:100vh;height:100dvh;height:var(--mobile-viewport-height, 100dvh);min-height:0;max-width:100%;overflow:hidden}.app-shell.left-collapsed,.app-shell.right-collapsed,.app-shell.left-collapsed.right-collapsed{grid-template-columns:1fr}.side-toggle{position:fixed;width:30px;height:42px;z-index:45}.left-side-toggle{top:50%;left:calc(var(--mobile-panel-width) - 1px);right:auto;border-radius:0 8px 8px 0}.app-shell.left-collapsed .left-side-toggle{left:0}.right-side-toggle{top:50%;right:calc(var(--mobile-right-panel-width) - 1px);bottom:auto;border-radius:8px 0 0 8px}.app-shell.right-collapsed .right-side-toggle{right:0}.workspace{grid-row:1;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0}.topbar{gap:6px;position:relative;z-index:1;min-height:54px;justify-content:flex-end;padding:8px;overflow:hidden}.topbar>.toolbar{display:none}.app-shell.phone-touch-layout .topbar>.toolbar:not(.file-toolbar){display:contents}.app-shell.phone-touch-layout .topbar>.toolbar:first-child>button,.app-shell.phone-touch-layout .topbar>.toolbar:nth-child(2)>button{display:none}.app-shell.phone-touch-layout .topbar>.toolbar:first-child>button:nth-child(5),.app-shell.phone-touch-layout .topbar>.toolbar:first-child>button:nth-child(6),.app-shell.phone-touch-layout .topbar>.toolbar:nth-child(2)>button:nth-child(1),.app-shell.phone-touch-layout .topbar>.toolbar:nth-child(2)>button:nth-child(2),.app-shell.phone-touch-layout .topbar>.toolbar:nth-child(2)>button:nth-child(3),.app-shell.phone-touch-layout .topbar>.toolbar:nth-child(2)>button:nth-child(4){display:inline-flex}.app-shell.phone-touch-layout .topbar>.toolbar:first-child>button:nth-child(5){order:6}.app-shell.phone-touch-layout .topbar>.toolbar:first-child>button:nth-child(6){order:7}.app-shell.phone-touch-layout .topbar>.toolbar:nth-child(2)>button:nth-child(1){order:8}.app-shell.phone-touch-layout .topbar>.toolbar:nth-child(2)>button:nth-child(2){order:9}.app-shell.phone-touch-layout .topbar>.toolbar:nth-child(2)>button:nth-child(3){order:10}.app-shell.phone-touch-layout .topbar>.toolbar:nth-child(2)>button:nth-child(4){order:11}.app-shell:not(.phone-touch-layout) .topbar{justify-content:flex-start;overflow-x:auto}.app-shell:not(.phone-touch-layout) .topbar>.toolbar{display:inline-flex}.app-shell:not(.phone-touch-layout) .mobile-export-menu-trigger{display:none}.app-shell input:not([type=checkbox]):not([type=range]):not([type=color]),.app-shell textarea,.app-shell select{font-size:16px}.mobile-export-menu-trigger{display:inline-flex;order:1;min-width:72px;height:34px;align-items:center;justify-content:center;gap:6px;border:1px solid #8fac77;border-radius:10px;background:#f0f6e9;color:#2f5d37;font-size:12px;font-weight:700;margin-right:auto}.app-shell.phone-touch-layout .mobile-export-menu-trigger{margin-right:0}.app-shell.phone-touch-layout .mobile-top-save-symbol-button{display:inline-flex;order:5;height:34px;min-width:max-content;align-items:center;justify-content:center;gap:4px;border:1px solid #8fac77;border-radius:9px;background:#f0f6e9;color:#2f5d37;padding:0 8px;font-size:12px;font-weight:700;white-space:nowrap}.app-shell.phone-touch-layout .mobile-top-panel-trigger{display:inline-flex;order:3;height:34px;min-width:max-content;align-items:center;justify-content:center;gap:4px;border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;color:#35424d;padding:0 8px;font-size:12px;font-weight:700;white-space:nowrap}.app-shell.phone-touch-layout .topbar button,.app-shell.phone-touch-layout .topbar .member-badge{font-size:12px;font-weight:400}.app-shell.phone-touch-layout .mobile-top-panel-trigger+.mobile-top-panel-trigger{order:4}.app-shell.phone-touch-layout .mobile-top-panel-trigger.active{border-color:#71875d;background:#edf4e4;color:#315a2c}.app-shell.phone-touch-layout .topbar.is-mobile-panel-open>:not(.mobile-top-compact-panel){display:none!important}.app-shell.phone-touch-layout .mobile-top-compact-panel{display:inline-flex;width:100%;min-width:max-content;min-height:38px;align-items:center;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.app-shell.phone-touch-layout .mobile-top-compact-panel::-webkit-scrollbar{display:none}.app-shell.phone-touch-layout .mobile-top-compact-panel.is-arrange{display:grid;width:100%;min-width:0;min-height:72px;align-content:center;gap:5px;overflow:visible}.app-shell.phone-touch-layout .mobile-top-compact-panel.is-arrange .mobile-top-arrange-types,.app-shell.phone-touch-layout .mobile-top-compact-panel.is-arrange .mobile-top-arrange-group{display:flex;width:100%;min-width:0;justify-content:center;overflow-x:auto;scrollbar-width:none}.app-shell.phone-touch-layout .mobile-top-compact-panel.is-arrange .mobile-top-arrange-types::-webkit-scrollbar,.app-shell.phone-touch-layout .mobile-top-compact-panel.is-arrange .mobile-top-arrange-group::-webkit-scrollbar{display:none}.app-shell.phone-touch-layout .mobile-top-compact-panel.is-arrange .mobile-top-arrange-types button{flex:1 1 0;max-width:126px}.app-shell.phone-touch-layout .mobile-top-compact-panel.is-arrange .mobile-top-arrange-types .mobile-top-arrange-back{flex:0 0 auto;max-width:none}.app-shell.phone-touch-layout .mobile-top-compact-panel.is-arrange .mobile-top-arrange-group{gap:10px}.mobile-top-compact-title,.mobile-top-panel-group,.mobile-top-arrange-types button{display:inline-flex;height:34px;flex:0 0 auto;align-items:center;justify-content:center;gap:4px;border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;color:#35424d;padding:0 8px;font-size:12px;font-weight:700;white-space:nowrap}.mobile-top-compact-title{border-color:#71875d;background:#edf4e4;color:#315a2c}.mobile-top-panel-group,.mobile-top-arrange-group,.mobile-top-arrange-types{display:inline-flex;flex:0 0 auto;gap:4px}.mobile-top-panel-group{padding:3px;border:0;border-radius:11px;background:#f1ede5}.mobile-top-panel-group button{display:inline-flex;height:26px;align-items:center;gap:4px;box-sizing:border-box;border:1px solid transparent;border-radius:8px;background:transparent;color:#5f574f;padding:0 7px}.mobile-top-panel-group button.active,.mobile-top-arrange-types button.active{border-color:#71875d;background:#edf4e4;color:#315a2c}.mobile-top-number-field,.mobile-top-toggle{display:inline-flex;height:34px;flex:0 0 auto;align-items:center;gap:4px;color:#5f574f;font-size:12px;white-space:nowrap}.mobile-top-number-field input{width:52px;height:34px;box-sizing:border-box;border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;color:#263238;padding:0 6px}.mobile-top-arrange-group .quick-arrange-stepper{width:126px}.mobile-top-arrange-group .quick-arrange-stepper input{width:100%}.mobile-top-arrange-confirm{width:auto;min-width:48px;flex:0 0 auto;font-size:13px;font-weight:400}.mobile-top-toggle{border:1px solid #c8c0b2;border-radius:9px;background:#fffdf7;padding:0 8px}.mobile-top-toggle input{margin:0}.mobile-top-color-field{display:inline-flex;height:34px;flex:0 0 auto;align-items:center;gap:4px;color:#5f574f;font-size:12px;white-space:nowrap}.mobile-top-color-field input{width:30px;height:30px;border:1px solid #c8c0b2;border-radius:8px;background:#fffdf7;padding:2px}.mobile-top-arrange-hint{flex:0 0 auto;color:#55704d;font-size:12px;white-space:nowrap}.toolbar{flex:0 0 auto;gap:4px;padding-right:6px}.toolbar button{width:34px;min-width:34px;height:34px}.toolbar button.file-action-button,.toolbar button.export-menu-trigger{width:auto;min-width:auto}.member-toolbar{flex:0 0 auto;margin-left:0}.app-shell.phone-touch-layout .member-toolbar{display:contents}.app-shell.phone-touch-layout .member-toolbar>:not(.support-trigger){order:2}.app-shell.phone-touch-layout .member-toolbar>.support-trigger{order:12;width:34px;min-width:34px;min-height:34px;height:34px;padding:0;border-radius:9px}.app-shell.phone-touch-layout .support-trigger-label{display:none}.app-shell.phone-touch-layout .member-toolbar>.support-trigger svg{width:15px;height:15px}.member-toolbar button,.member-badge{min-height:34px;padding:0 8px}.canvas-wrap{min-height:0}.symbol-panel{position:fixed;inset:0 auto 0 0;z-index:40;width:var(--mobile-panel-width);height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;border-right:1px solid #cfc7b8;border-bottom:0;box-shadow:12px 0 28px #1f29332e}.app-shell.left-collapsed .symbol-panel{display:none}.custom-category-list{grid-template-columns:repeat(3,minmax(0,1fr))}.symbol-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:98px}.symbol-card{height:98px;min-height:98px;grid-template-rows:62px auto}.symbol-card svg{width:54px;height:54px}.property-panel{position:fixed;inset:0 0 0 auto;z-index:40;display:flex;width:var(--mobile-right-panel-width);height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;box-shadow:-12px 0 28px #1f29332e}.app-shell.right-collapsed .property-panel{display:none}.canvas-status{right:8px;bottom:8px;z-index:69;max-width:calc(100vw - 16px);flex-wrap:wrap;justify-content:flex-end}.app-shell.phone-touch-layout .canvas-status{position:fixed;bottom:calc(var(--mobile-property-bar-height, 0px) + 8px)}.canvas-status>span,.canvas-status-pill,.canvas-stitch-type-switch,.canvas-zoom-pill,.canvas-zoom-slider{padding:6px 8px;font-size:12px}.canvas-zoom-slider{width:min(160px,44vw);padding:5px 8px}.member-dropdown{right:8px!important;left:auto!important;width:min(280px,calc(100vw - 16px))}.modal-backdrop{inset:auto;top:var(--mobile-dialog-top, 0px);left:var(--mobile-dialog-left, 0px);width:var(--mobile-dialog-width, 100%);height:100vh;height:var(--mobile-dialog-height, 100dvh);z-index:60;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);overflow:hidden;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) max(10px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));place-items:start center}.member-login-modal,.layer-group-name-modal,.vip-recharge-modal,.confirm-modal,.symbol-manager-modal,.category-manager-modal,.reference-crop-modal,.mobile-reference-image-settings{width:100%;min-width:0;min-height:0;max-width:100%;max-height:100%;overflow:auto;overscroll-behavior:contain;overflow-wrap:anywhere}.confirm-modal .modal-actions{flex-wrap:wrap}.confirm-modal .modal-actions button{flex:1 1 130px;min-width:0;height:auto;min-height:40px;padding:8px 10px}.reference-crop-modal,.mobile-reference-image-settings{width:100%;padding:14px}.reference-crop-preview{max-height:min(44dvh,420px)}.reference-crop-values{align-items:flex-start;flex-direction:column}.vip-pay-section,.member-code-row,.symbol-import-panel{grid-template-columns:1fr}.managed-symbol-list{overflow:auto}.managed-symbol-header-row,.managed-symbol-row{min-width:980px}}
