:root{--motion-enter: .16s;--motion-leave: .12s;--motion-page: .2s;--motion-ease: cubic-bezier(.2, .7, .2, 1);--motion-ease-exit: cubic-bezier(.4, 0, 1, 1)}.ui-dialog-enter-active,.ui-dialog-leave-active,.ui-popover-enter-active,.ui-popover-leave-active{transition:opacity var(--motion-enter) var(--motion-ease),transform var(--motion-enter) var(--motion-ease)}.ui-dialog-leave-active,.ui-popover-leave-active{transition-duration:var(--motion-leave);transition-timing-function:var(--motion-ease-exit);pointer-events:none}.ui-dialog-enter-active>.modal,.ui-dialog-enter-active>.library-dialog,.ui-dialog-leave-active>.modal,.ui-dialog-leave-active>.library-dialog{transition:transform var(--motion-enter) var(--motion-ease)}.ui-dialog-leave-active>.modal,.ui-dialog-leave-active>.library-dialog{transition-duration:var(--motion-leave);transition-timing-function:var(--motion-ease-exit)}.ui-dialog-enter-from,.ui-dialog-leave-to,.ui-popover-enter-from,.ui-popover-leave-to{opacity:0}.ui-dialog-enter-from>.modal,.ui-dialog-enter-from>.library-dialog,.ui-dialog-leave-to>.modal,.ui-dialog-leave-to>.library-dialog{transform:translateY(8px)}.ui-popover-enter-from,.ui-popover-leave-to{transform:translateY(4px)}.ui-page-enter-active{transition:opacity var(--motion-page) var(--motion-ease),transform var(--motion-page) var(--motion-ease)}.ui-page-leave-active{transition:opacity var(--motion-leave) var(--motion-ease-exit);pointer-events:none}.ui-page-enter-from{opacity:0;transform:translateY(6px)}.ui-page-leave-to{opacity:0}.ui-page-in{animation:ui-page-in var(--motion-page) var(--motion-ease)}@keyframes ui-page-in{0%{opacity:0}}@media(prefers-reduced-motion:reduce){.ui-dialog-enter-active,.ui-dialog-leave-active,.ui-popover-enter-active,.ui-popover-leave-active,.ui-page-enter-active,.ui-page-leave-active,.ui-page-in,.ui-dialog-enter-active>.modal,.ui-dialog-leave-active>.modal,.ui-dialog-enter-active>.library-dialog,.ui-dialog-leave-active>.library-dialog{transition:none!important;transform:none!important;animation:none!important}}.project-tabs{height:var(--topbar-height);min-height:var(--topbar-height);display:flex;align-items:stretch;background:var(--surface-sunken, #e9ede5);border-bottom:1px solid var(--line, #dbe1d5);z-index:95;padding:0 10px 0 6px;gap:0}.topbar-brand{display:flex;align-items:center;gap:7px;padding:0 12px 0 6px;border-right:1px solid var(--line, #d7decf);font-size:21px;font-weight:700;letter-spacing:-1.1px;color:var(--ink, #3e4d35);line-height:1;flex-shrink:0;border-radius:0}.topbar-brand:hover{color:var(--danger, #e97451)}.topbar-brand:focus,.topbar-brand:focus-visible{box-shadow:none}.topbar-brand .brand-mark{display:block;width:23px;height:25px;margin:0}.topbar-brand-text i{font-style:normal;color:var(--danger, #e96b48)}.project-tab-list{display:flex;min-width:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;align-items:stretch}.project-tab-list::-webkit-scrollbar{width:0;height:0;display:none}.project-tab-list [role=tab]:focus-visible{box-shadow:inset 0 0 0 2px var(--focus)}.home-tab{min-width:46px;padding:0;position:sticky;left:0;z-index:1;background:var(--surface-sunken, #e9ede5);color:var(--text-secondary, #77826d);border-right:1px solid var(--line, #d7decf)}.home-tab[aria-selected=true]{background:var(--surface-hover, #f8f9f6);color:var(--ink, #3e5936);box-shadow:inset 0 2px #829971}.document-tab{position:relative;display:flex;align-items:stretch;max-width:235px;min-width:130px;border-right:1px solid var(--line, #d7decf);color:var(--text-muted, #7f8976)}.document-tab.selected{background:var(--surface-hover, #fdfcf9);color:var(--ink, #3e4d35);box-shadow:inset 0 2px #e97652}.document-tab>[role=tab]{justify-content:flex-start;min-width:0;flex:1;padding:0 12px;gap:9px;font-size:11px}.document-tab>[role=tab]>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.document-tab .tab-close{width:28px;min-width:28px;padding:0;margin:9px 3px 9px 0;border-radius:4px;color:var(--text-muted, #8d9683)}.tab-close:hover{background:var(--surface-hover, #dce3d3)}.tab-new{width:35px;min-width:35px;margin-left:5px;color:var(--text-muted, #7b8870);align-self:center;height:30px;border-radius:5px}.tab-new:hover{background:var(--surface-hover, #dce3d3)}.tab-unsaved{width:7px;height:7px;background:var(--accent-soft, #d9a441);border-radius:50%;flex-shrink:0;box-shadow:0 0 0 2px #fff5dd}.tab-error{color:var(--danger, #c9603f)}.tab-progress{position:absolute;left:0;bottom:0;height:2px;background:#e97451;transition:width .2s;pointer-events:none}.topbar-actions{display:flex;align-items:center;margin-left:auto;padding-left:8px;flex-shrink:0}.library{top:var(--topbar-height)!important}.project-tabs~.modal-backdrop{z-index:110}@media(max-width:720px){.project-tabs{padding:0 5px;height:var(--topbar-height);min-height:var(--topbar-height)}.document-tab{min-width:120px;max-width:180px}.document-tab>[role=tab]{padding:0 8px;font-size:10px}.home-tab{min-width:40px}.topbar-brand{padding:0 8px 0 4px;gap:0}.topbar-brand-text{display:none}}@media(max-width:420px){.document-tab{min-width:96px;max-width:140px}.topbar-brand .brand-mark{display:block;width:23px;height:25px;margin:0}}.ui-heading{display:flex;flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:24px;padding-right:22px}.ui-heading-icon{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;border-radius:13px;background:var(--accent-soft, var(--surface-sunken, #f9e9df));color:var(--danger, #d97b56)}.ui-heading-icon svg{width:24px;height:24px}.ui-heading-copy{min-width:0;width:100%}.ui-heading .ui-heading-title{display:block;font-size:23px;font-weight:500;letter-spacing:-.7px;line-height:1.25;margin:0;overflow-wrap:anywhere}.ui-heading .ui-heading-description{font-size:12px;font-weight:400;line-height:1.7;color:var(--text-muted, #8b9580);margin:8px 0 0;overflow-wrap:anywhere}.ui-heading-compact{gap:14px}.ui-heading-compact .ui-heading-icon{flex-basis:40px;width:40px;height:40px;border-radius:11px}@media(max-width:650px){.ui-heading{gap:16px;padding-right:24px}.ui-heading-icon{flex-basis:40px;width:40px;height:40px;border-radius:11px}.ui-heading-icon svg{width:22px;height:22px}.ui-heading .ui-heading-title{font-size:21px}}.ui-heading.ui-heading-page{padding-right:0;margin-bottom:24px}.ui-heading.ui-heading-page .ui-heading-title{font-size:28px;font-weight:550;letter-spacing:-1px}.ui-heading.ui-heading-hero{padding-right:0}.ui-heading.ui-heading-hero .ui-heading-title{font-size:32px;letter-spacing:-1px}.ui-heading.ui-heading-centered{align-items:center;text-align:center;padding-right:0}@media(max-width:650px){.ui-heading.ui-heading-page .ui-heading-title{font-size:25px}.ui-heading.ui-heading-hero .ui-heading-title{font-size:27px}}.ui-select{position:relative;display:flex;min-width:0}.ui-select-trigger{height:38px;width:100%;gap:10px;justify-content:space-between;border:1px solid var(--line, #dde1d4);border-radius:5px;background:var(--surface, #fdfdf9);padding:0 10px;font-size:10px;color:inherit;text-align:left}.ui-select-trigger:hover:not(:disabled),.ui-select-trigger[aria-expanded=true]{border-color:var(--line, #c2ccb4)}.ui-select-value{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ui-select-arrow{color:var(--text-muted, #8d977f);flex-shrink:0;transition:transform .15s}.ui-select-trigger[aria-expanded=true] .ui-select-arrow{transform:rotate(180deg)}.ui-select-list{position:fixed;width:max-content;max-width:min(320px,calc(100vw - 16px));overflow-y:auto;overscroll-behavior:contain;background:var(--surface, #fff);border:1px solid var(--line, #dfe4d8);border-radius:10px;box-shadow:0 12px 36px #30382820;padding:6px;z-index:300}.ui-select-list button{display:flex;align-items:center;width:100%;justify-content:space-between;gap:12px;padding:9px 10px;border:0;background:none;border-radius:6px;font:inherit;font-size:11px;line-height:1.4;text-align:left;cursor:pointer;color:var(--ink, #3f4a3a)}.ui-select-list button:hover,.ui-select-list button:focus-visible{background:var(--surface-hover, #f2f4ec)}.ui-select-list button.current{color:var(--ink, #344f3d);font-weight:600}.ui-select-list button span{overflow:hidden;text-overflow:ellipsis}@media(prefers-reduced-motion:reduce){.ui-select-arrow{transition:none}}.account-avatar[data-v-3b277a4c]{overflow:hidden;color:var(--text-secondary, #5c6b52)}.account-avatar img[data-v-3b277a4c]{width:100%;height:100%;object-fit:cover;display:block}.account-avatar span[data-v-3b277a4c]{line-height:1;color:inherit}.setting-row>div[data-v-b05ce6ef]{min-width:0}.account-row[data-v-b05ce6ef]{gap:15px}.account-row>div[data-v-b05ce6ef]:not(.account-avatar){flex:1}.account-disconnect[data-v-b05ce6ef]{gap:20px;align-items:flex-start}.account-disconnect .button[data-v-b05ce6ef]{flex-shrink:0}a.button[data-v-b05ce6ef]{text-decoration:none}@media(max-width:720px){.setting-row[data-v-b05ce6ef],.account-disconnect[data-v-b05ce6ef]{flex-direction:column;align-items:flex-start;gap:16px}}.admin-page{max-width:1120px;--viz-1: #2a78d6;--viz-2: #eb6834;--viz-3: #1baf7a;--viz-4: #eda100;--viz-5: #8a5cf5;--viz-muted: #c3c2b7;--viz-grid: #e8eae3;--viz-axis: #8b9580;--viz-error: #b86043}.admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:18px}.admin-controls,.admin-filters{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.admin-filters{margin-bottom:14px}.admin-filters .admin-muted{flex:1 1 200px}.admin-check{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--text-muted, #7a8674)}.admin-clear{display:inline-flex;align-items:center;gap:4px;font-size:11px}.admin-controls .button{font-size:11px;padding:9px 11px;min-height:35px}.admin-loading,.admin-empty{font-size:12px;color:var(--text-muted, #8b9580);margin:14px 0}.admin-empty{text-align:center;padding:14px 0}.admin-muted{font-size:11px;color:var(--text-muted, #8b9580);line-height:1.6}.admin-muted .text-button{font-size:11px;padding:0;color:var(--text-secondary, #6f7d63);text-decoration:underline}.admin-footnote{margin:10px 0 0}.admin-body{transition:opacity .15s}.admin-body.stale{opacity:.55;pointer-events:none}.admin-selection{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--text-secondary, #5f6b58);background:var(--surface-soft, #f3f5ef);border:1px dashed var(--line-strong, #c9d1bd);border-radius:10px;padding:8px 14px;margin-bottom:14px}.admin-selection strong{color:var(--ink, #303b33)}.admin-selection .text-button{display:inline-flex;align-items:center;gap:4px;font-size:11px;margin-left:auto}.admin-chips{display:flex;gap:6px 10px;align-items:center;flex-wrap:wrap;margin:0 0 14px}.admin-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;border:1px solid var(--line-strong, #c9d1bd);background:var(--surface, #fff);color:var(--ink, #303b33);font-size:11px}.admin-chip:hover{background:var(--surface-hover, #f2f4ed)}.admin-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:10px;margin-bottom:14px}.admin-kpis.compact{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.admin-kpi{background:var(--surface, #fff);border:1px solid var(--line, #e3e6d9);border-radius:12px;padding:14px 16px 10px;display:grid;gap:4px;min-width:0;justify-content:stretch;justify-items:start;box-shadow:0 1px 2px #1a291b0a;text-align:left;color:inherit;font:inherit;transition:border-color .15s,box-shadow .15s}button.admin-kpi:not(.static){cursor:pointer}button.admin-kpi:not(.static):hover{border-color:var(--line-strong, #c9d1bd)}.admin-kpi.active{border-color:var(--line-strong, #b9c4ad);box-shadow:inset 0 0 0 1px var(--line-strong, #b9c4ad)}.admin-kpi.static{cursor:default}.admin-kpis.compact .admin-kpi{padding:12px 14px}.kpi-label{display:flex;align-items:center;gap:6px;font-size:10px;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted, #8b9580);font-weight:600}.kpi-label .key-line{margin:0}.kpi-value{font-size:26px;font-weight:600;letter-spacing:-.6px;color:var(--ink, #303b33);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-kpis.compact .kpi-value{font-size:20px}.admin-kpi.warn .kpi-value{color:var(--viz-error)}.kpi-delta{display:flex;align-items:center;gap:3px;font-size:11px;font-weight:600;color:var(--ink, #4e6743);min-height:16px}.kpi-delta small{font-weight:400;color:var(--text-muted, #8b9580);margin-left:2px}.kpi-delta.bad{color:var(--viz-error)}.kpi-delta.flat,.kpi-delta.muted{color:var(--text-muted, #8b9580);font-weight:400}.kpi-note{font-size:10px;color:var(--text-muted, #8b9580)}.kpi-spark{width:100%;height:28px;margin-top:4px;display:block}.kpi-spark polyline{fill:none;stroke:var(--viz-muted);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.admin-kpi.active .kpi-spark polyline{stroke:var(--ink, #303b33);opacity:.5}.admin-card{background:var(--surface, #fff);border:1px solid var(--line, #e3e6d9);border-radius:14px;padding:18px 22px;margin-bottom:14px;box-shadow:0 1px 2px #1a291b0a;min-width:0}.admin-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.admin-card-head h2,.admin-card-head h3{font-size:13px;font-weight:600;margin:0;color:var(--ink, #303b33)}.admin-card-head .text-button{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--text-secondary, #6f7d63)}.admin-card-head-inset{padding:12px 10px 4px}.admin-card-title{display:flex;align-items:baseline;gap:8px;min-width:0}.admin-segmented button small{font-size:10px;color:var(--text-muted, #8b9580);font-variant-numeric:tabular-nums}.admin-card-tools{display:flex;align-items:center;gap:14px;flex:1 1 auto;justify-content:flex-end;min-width:0}.admin-card-head .library-search{flex:0 1 280px;height:32px}.admin-subhead{margin:18px 0 10px;padding-top:14px;border-top:1px solid var(--line, #eef0e8)}.admin-grid{display:grid;gap:14px}.admin-grid.two{grid-template-columns:repeat(auto-fit,minmax(380px,1fr))}.admin-grid.activity{grid-template-columns:minmax(260px,2fr) minmax(0,3fr);margin-bottom:14px}.admin-split{display:grid;grid-template-columns:minmax(220px,2fr) minmax(0,3fr);gap:12px 28px;align-items:start}.admin-grid .admin-card{margin-bottom:14px}.admin-legend{display:flex;align-items:center;gap:6px 12px;font-size:11px;color:var(--text-muted, #7a8674);flex-wrap:wrap}.admin-legend-toggles{margin-bottom:8px}.legend-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:6px;border:0;background:transparent;font-size:11px;color:var(--ink, #4a5546);cursor:pointer}.legend-toggle:hover{background:var(--surface-soft, #f3f5ef)}.legend-toggle.off{color:var(--text-muted, #a0a89a);text-decoration:line-through}.legend-toggle.off .key-line,.legend-toggle.off .key-rect{opacity:.3}.admin-legend-hint{margin-left:auto;font-size:10px;color:var(--text-muted, #a0a89a)}.key-line,.key-rect{display:inline-block;width:14px;height:2px;border-radius:1px;background:var(--viz-1);flex-shrink:0}.key-rect{height:9px;border-radius:2px}.chart-tip .key-line,.chart-tip .key-rect{margin:0 6px 0 0;vertical-align:middle}.chart-wrap{position:relative}.chart-wrap.clickable .admin-chart{cursor:pointer}.chart-wrap.brushing .admin-chart{cursor:col-resize}.admin-chart{width:100%;height:auto;display:block;touch-action:none;-webkit-user-select:none;user-select:none}.admin-timeline .admin-chart{cursor:crosshair}.admin-chart .grid{stroke:var(--viz-grid);stroke-width:1}.admin-chart .axis{font-size:10px;fill:var(--viz-axis)}.admin-chart .line{fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.admin-chart .area{opacity:.08}.admin-chart .dot{stroke:var(--surface, #fff);stroke-width:2}.admin-chart .crosshair{stroke:var(--viz-axis);stroke-width:1}.admin-chart .band-out{fill:var(--surface-sunken, #e8ecdf);opacity:.45}.admin-chart .band-in{fill:none;stroke:var(--viz-axis);stroke-width:1;stroke-dasharray:3 3}.admin-chart .bar{transition:opacity .15s}.admin-chart g.lifted .bar{filter:brightness(1.12)}.admin-chart g.dimmed .bar{opacity:.35}.admin-chart g.picked .bar{filter:brightness(1.12)}.chart-tip{position:absolute;top:8px;transform:translate(12px);background:#303b33;color:var(--on-inverse, #fff);border-radius:8px;padding:8px 10px;font-size:11px;line-height:1.6;display:grid;gap:1px;pointer-events:none;white-space:nowrap;box-shadow:0 6px 18px #1a291b33;z-index:2}.chart-tip.flip{transform:translate(calc(-100% - 12px))}.chart-tip strong{font-weight:600;margin-bottom:2px;color:var(--on-inverse, #e8ecdf)}.chart-tip span{font-weight:600}.chart-tip small{font-weight:400;color:#c3c9b9;margin-left:2px}.heat-wrap{position:relative}.heat{display:grid;gap:2px;font-size:10px;color:var(--viz-axis)}.heat-row{display:grid;grid-template-columns:38px repeat(24,minmax(0,1fr)) 56px;gap:2px;align-items:center}.compact .heat-row{grid-template-columns:34px repeat(24,minmax(0,1fr))}.heat-cell{aspect-ratio:1;border-radius:2px;background:var(--surface-sunken, #eef0e8);background:color-mix(in srgb,var(--heat-color, var(--viz-1)) calc(var(--level, 0) * 100%),var(--surface-sunken, #eef0e8));min-height:9px;transition:background .15s}.heat-row.muted .heat-cell{opacity:.35}.heat-day{padding:0 6px 0 0;text-align:right;background:transparent;border:0;color:var(--viz-axis);font-size:10px;cursor:pointer;border-radius:4px;line-height:1.6}.heat-day:hover{color:var(--ink, #303b33)}.heat-row.focused .heat-day{color:var(--ink, #303b33);font-weight:600}.compact .heat-day{cursor:default}.heat-hour{text-align:center;overflow:hidden}.heat-head{margin-bottom:2px}.heat-margin{display:flex;align-items:center;gap:6px;height:100%;min-width:0}.heat-margin-day{padding-left:6px}.heat-margin-day i{display:block;height:6px;border-radius:3px;background:var(--heat-color, var(--viz-1));opacity:.55;min-width:2px}.heat-margin-day small{font-size:9px;color:var(--viz-axis);white-space:nowrap}.heat-foot{margin-top:4px;align-items:end}.heat-margin-hour{height:28px;align-items:flex-end;justify-content:center}.heat-margin-hour i{display:block;width:60%;border-radius:2px 2px 0 0;background:var(--heat-color, var(--viz-1));opacity:.55}.heat-tip{top:auto;transform:translate(-50%,calc(-100% - 8px))}.heat-tip.flip{transform:translate(-50%,calc(-100% - 8px))}.admin-rings{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.admin-ring{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;justify-items:center;text-align:center}.admin-ring .ring{width:96px;height:96px}.ring-track{fill:none;stroke:var(--surface-sunken, #eef0e8);stroke-width:12}.ring-arc{fill:none;stroke-width:12;stroke-linecap:butt}.ring-value{font-size:19px;font-weight:600;fill:var(--ink, #303b33);letter-spacing:-.5px}.ring-label{font-size:8px;fill:var(--text-muted, #8b9580)}.ring-legend{list-style:none;margin:0;padding:0;display:grid;gap:5px;font-size:11px;min-width:0;width:100%}.ring-legend li{display:grid;grid-template-columns:14px minmax(0,1fr) auto auto;gap:8px;align-items:center;color:var(--ink, #4a5546)}.ring-legend li{text-align:left}.ring-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ring-legend strong{font-weight:600;font-variant-numeric:tabular-nums}.ring-legend small{color:var(--text-muted, #8b9580);font-variant-numeric:tabular-nums;min-width:30px;text-align:right}.ring-caption{grid-column:1 / -1;margin:0;text-align:center}.admin-ring.empty .ring-value{display:none}.admin-bars{list-style:none;margin:0;padding:0;display:grid;gap:9px}.admin-bars li{display:grid;grid-template-columns:minmax(90px,170px) 1fr 84px;align-items:center;gap:10px;font-size:11px;transition:opacity .15s}.admin-bars li.dimmed{opacity:.45}.bar-label{display:flex;justify-content:flex-start;align-items:center;gap:6px;width:100%;min-width:0;overflow:hidden;color:var(--ink, #4a5546);background:transparent;border:0;padding:0;font:inherit;text-align:left}.bar-label .key-rect{flex-shrink:0}.bar-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.admin-bars.clickable .bar-label{cursor:pointer;border-radius:4px}.admin-bars.clickable .bar-label:hover{color:var(--ink, #303b33);text-decoration:underline}.admin-bars li.picked .bar-label{font-weight:600;color:var(--ink, #303b33)}.bar-track{height:8px;border-radius:0 4px 4px 0;background:transparent}.bar-fill{display:block;height:100%;background:var(--viz-1);border-radius:0 4px 4px 0;min-width:2px;transition:width .25s}.bar-value{text-align:right;color:var(--ink, #303b33);font-variant-numeric:tabular-nums;white-space:nowrap}.bar-value small{color:var(--text-muted, #8b9580);font-size:10px;margin-left:5px}.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px}.admin-table-card{padding:6px 10px}.admin-scroll{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:12px}.admin-table th{font-size:10px;text-transform:uppercase;letter-spacing:.7px;color:var(--text-muted, #8b9580);text-align:left;padding:10px;border-bottom:1px solid var(--line, #e3e6d9);white-space:nowrap}.admin-table th.num{text-align:right}.admin-table th.sorted{color:var(--ink, #303b33)}.sort-button{display:inline-flex;align-items:center;gap:4px;background:transparent;border:0;padding:2px 0;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;border-radius:4px}.sort-button svg{opacity:.45;flex-shrink:0}.admin-table th.sorted .sort-button svg{opacity:1}.admin-table th.num .sort-button{flex-direction:row-reverse}.sort-button:hover{color:var(--ink, #303b33)}.admin-table td{padding:10px 9px;border-bottom:1px solid var(--line, #eef0e8);vertical-align:top;color:var(--ink, #3f4a3a);line-height:1.5}.admin-table tbody tr:last-child td{border-bottom:0}.admin-table td strong{display:block;font-weight:600;overflow-wrap:anywhere}.admin-table td small{display:block;font-size:10px;color:var(--text-muted, #8b9580)}.admin-table .num{text-align:right;font-variant-numeric:tabular-nums}.admin-table .zero{color:var(--text-muted, #c3c9b9)}.admin-table .nowrap{white-space:nowrap}.admin-table .details{overflow-wrap:anywhere;max-width:480px}.admin-table .prefers{min-width:96px}.admin-users td,.admin-users th{padding-left:7px;padding-right:7px}.admin-table tr.technical td{color:var(--text-muted, #8b9580)}.admin-table tr.failure .details{color:var(--viz-error)}.admin-row{cursor:pointer}.admin-row:hover td,.admin-row.open td,.admin-row:focus-visible td{background:var(--surface-hover, #f7f8f3)}.admin-row:focus-visible td:first-child{box-shadow:inset 3px 0 0 var(--focus)}.admin-expand td{background:var(--surface-soft, #fbfbf8);padding:14px 16px 16px}.admin-user-facts{display:flex;flex-wrap:wrap;gap:8px 22px;margin-bottom:12px}.admin-user-facts span{display:grid;gap:1px}.admin-user-facts small{font-size:10px;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted, #8b9580)}.admin-user-facts strong{font-size:14px;font-weight:600;color:var(--ink, #303b33)}.prefers-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--surface-sunken, #eef0e8);min-width:90px}.prefers-bar i{display:block;height:100%}.prefers-drawing{background:var(--kind-drawing, #e96b48)}.prefers-diagram{background:var(--kind-diagram, #3b6fd6)}.admin-log{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:320px;overflow:auto}.admin-log li{display:grid;grid-template-columns:150px 1fr;gap:12px;font-size:11px;padding:4px 0;border-bottom:1px dashed var(--line, #eef0e8)}.admin-log li.technical{color:var(--text-muted, #8b9580)}.admin-log li.failure .log-text{color:var(--viz-error)}.log-time{color:var(--text-muted, #8b9580);white-space:nowrap}.log-text{color:var(--ink, #3f4a3a);overflow-wrap:anywhere}.admin-pager{display:flex;justify-content:center;align-items:center;gap:14px;padding:12px;font-size:11px;color:var(--text-muted, #7a8674)}.admin-pager .button{font-size:11px;padding:8px 12px;min-height:34px}.admin-storage{height:8px;border-radius:4px;background:var(--surface-sunken, #eef0e8);overflow:hidden;margin:4px 0 12px}.admin-storage i{display:block;height:100%;background:var(--viz-1);border-radius:4px}.admin-months{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:8px}.admin-months li{display:flex;align-items:center;gap:14px;padding:10px 0;border-bottom:1px solid var(--line, #eef0e8);flex-wrap:wrap}.admin-months li:last-child{border-bottom:0}.admin-months .button{font-size:11px;padding:8px 12px;min-height:34px}.admin-months .button:first-of-type{margin-left:auto}.admin-progress{height:3px;margin:-8px 0 12px;border-radius:2px;background:transparent;overflow:hidden}.admin-progress span{display:block;height:100%;width:30%;border-radius:2px;background:var(--viz-2);transform:translate(-120%);opacity:0}.admin-progress.active span{opacity:1;animation:admin-progress 1.1s ease-in-out infinite}@keyframes admin-progress{to{transform:translate(400%)}}@media(prefers-reduced-motion:reduce){.admin-progress.active span{animation:none;width:100%;transform:none;opacity:.6}}@media(max-width:1180px){.admin-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-kpis.four{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){.admin-grid.activity,.admin-split{grid-template-columns:1fr}}@media(max-width:720px){.admin-tabs{width:100%;overflow-x:auto}.admin-tabs button{padding:8px 10px;font-size:11px}.admin-card{padding:14px}.admin-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-bars li{grid-template-columns:minmax(70px,110px) 1fr 62px}.admin-log li{grid-template-columns:1fr;gap:2px}.admin-months .button:first-of-type{margin-left:0}.heat-row{grid-template-columns:28px repeat(24,minmax(0,1fr)) 40px}.compact .heat-row{grid-template-columns:28px repeat(24,minmax(0,1fr))}.heat-cell{min-height:6px}.heat-margin-day small,.admin-legend-hint{display:none}}.library-loading[data-v-173eafb5]{margin:30px 0 0}.library-loading-status[data-v-173eafb5]{display:flex;align-items:center;justify-content:center;gap:20px;padding:28px 20px 24px;text-align:left}.library-loading-icon[data-v-173eafb5]{position:relative;display:grid;place-items:center;flex-shrink:0;width:80px;height:80px;border-radius:24px;background:var(--surface-sunken, #fae9df);color:var(--danger, #d6643f)}.library-loading-icon>svg[data-v-173eafb5]:last-child:not(:first-child){position:absolute}.library-loading h2[data-v-173eafb5]{margin:0;color:var(--ink, #354436);font-size:22px;font-weight:600;line-height:1.35;letter-spacing:-.4px}.library-loading p[data-v-173eafb5]{margin:8px 0 0;font-size:13px;line-height:1.6;color:var(--text-secondary, #66745f);max-width:440px}.library-loading-track[data-v-173eafb5]{height:4px;width:160px;margin:0 auto 32px;border-radius:4px;background:var(--line, #eaded3);overflow:hidden}.library-loading-track span[data-v-173eafb5]{display:block;width:45%;height:100%;border-radius:inherit;background:#e97451;animation:library-loading-travel-173eafb5 1.5s ease-in-out infinite}.library-skeleton-grid[data-v-173eafb5]{gap:22px}.library-skeleton-card[data-v-173eafb5]{border:1px solid var(--line, #e1e5dc);border-radius:12px;background:var(--surface, #fff);overflow:hidden}.library-skeleton-preview[data-v-173eafb5]{height:174px;background:var(--surface-sunken, #e7ebe1);position:relative;overflow:hidden}.library-skeleton-preview[data-v-173eafb5]:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,var(--surface-overlay, #ffffff85),transparent);animation:library-loading-shimmer-173eafb5 1.8s ease-in-out infinite}.library-skeleton-copy[data-v-173eafb5]{padding:18px 16px;display:grid;gap:12px}.library-skeleton-copy span[data-v-173eafb5]{height:9px;background:var(--surface-sunken, #e9ece3);border-radius:4px;width:66%}.library-skeleton-copy span[data-v-173eafb5]:nth-child(2){width:42%;height:7px}.library-skeleton-copy span[data-v-173eafb5]:nth-child(3){width:30%;height:7px;margin-top:5px}.library-loading-compact[data-v-173eafb5]{position:relative;margin:0 0 20px;padding:16px 18px 19px;border:1px solid var(--accent-border, #ebcfbc);border-radius:10px;background:var(--surface, #fff7ef);overflow:hidden}.library-loading-compact .library-loading-status[data-v-173eafb5]{padding:0;gap:13px;justify-content:flex-start}.library-loading-compact .library-loading-icon[data-v-173eafb5]{width:40px;height:40px;border-radius:12px}.library-loading-compact h2[data-v-173eafb5]{font-size:14px;letter-spacing:0}.library-loading-compact p[data-v-173eafb5]{font-size:12px;margin-top:3px;max-width:none}.library-loading-compact .library-loading-track[data-v-173eafb5]{position:absolute;left:0;bottom:0;width:100%;height:3px;margin:0}.library-loading-compact .library-loading-track span[data-v-173eafb5]{width:30%}@keyframes library-loading-travel-173eafb5{0%{transform:translate(-110%)}to{transform:translate(335%)}}@keyframes library-loading-shimmer-173eafb5{to{transform:translate(100%)}}@media(min-width:1600px){.library-skeleton-preview[data-v-173eafb5]{height:195px}}@media(max-width:720px){.library-loading[data-v-173eafb5]{margin-top:12px}.library-loading-status[data-v-173eafb5]{flex-direction:column;text-align:center;padding:20px 0;gap:16px}.library-loading h2[data-v-173eafb5]{font-size:20px}.library-loading p[data-v-173eafb5]{font-size:12px}.library-skeleton-grid[data-v-173eafb5]{gap:14px}.library-skeleton-card[data-v-173eafb5]:nth-child(n+3){display:none}.library-skeleton-preview[data-v-173eafb5]{height:132px}.library-loading-compact .library-loading-status[data-v-173eafb5]{flex-direction:row;text-align:left;gap:10px}.library-loading-compact h2[data-v-173eafb5]{font-size:14px}}@media(prefers-reduced-motion:reduce){.library-loading .spinning[data-v-173eafb5],.library-loading-track span[data-v-173eafb5],.library-skeleton-preview[data-v-173eafb5]:after{animation:none}.library-skeleton-preview[data-v-173eafb5]:after{display:none}.library-loading-track span[data-v-173eafb5]{width:100%;opacity:.7}}.empty-state.library-empty{display:flex;align-items:center;gap:30px;min-height:220px;padding:36px clamp(24px,4vw,52px);border:1px dashed var(--line);border-radius:18px;background:linear-gradient(110deg,color-mix(in srgb,var(--warning) 3%,var(--surface-soft)),var(--surface-soft));margin-top:8px;color:var(--ink)}.empty-state-art{position:relative;flex:0 0 132px;width:132px;height:132px;border-radius:50%;background:color-mix(in srgb,var(--warning) 8%,transparent)}.empty-state-scene{position:absolute;left:50%;top:50%;width:180px;height:108px;transform:translate(-50%,-50%) scale(.66) translateY(-4px)}.empty-state-copy{min-width:0;max-width:490px}.empty-state-sheet{position:absolute;width:68px;height:80px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);box-shadow:0 8px 15px #1725180a}.empty-state .sheet-one{left:31px;top:12px;transform:rotate(-14deg);padding:18px 12px;background:var(--surface-sunken)}.empty-state .sheet-one i{display:block;height:4px;margin-bottom:8px;border-radius:3px;background:var(--line-strong)}.empty-state .sheet-one i:last-child{width:65%}.empty-state .sheet-two{left:83px;top:13px;transform:rotate(11deg);overflow:hidden}.empty-state .sheet-two span{position:absolute;width:23px;height:23px;border-radius:50%;background:#e8b765;left:11px;top:13px}.empty-state .sheet-two b{position:absolute;width:46px;height:49px;border-radius:30px 30px 0 0;background:#829975;bottom:-10px;right:-5px}.empty-state-icon{position:absolute;left:64px;bottom:-5px;width:53px;height:53px;display:grid;place-items:center;border:4px solid var(--surface);border-radius:17px;background:var(--accent-soft);color:var(--accent);box-shadow:0 5px 14px #17251810}.empty-state-dot{position:absolute;left:12px;top:60px;width:6px;height:6px;background:var(--accent);opacity:.6;border-radius:50%}.empty-state-ring{position:absolute;right:10px;top:9px;width:10px;height:10px;border:2px solid var(--line-strong);border-radius:50%}.empty-state h2{font-size:18px;font-weight:550;letter-spacing:-.3px;line-height:1.4;margin-bottom:8px}.empty-state p{max-width:430px;font-size:12px;line-height:1.8;color:var(--text-muted);overflow-wrap:anywhere}.empty-state-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin-top:20px}.empty-state-actions .button{min-height:36px;padding:9px 15px;font-size:12px}.empty-state-search .sheet-two{transform:rotate(5deg)}.empty-state-trash .empty-state-icon{background:var(--surface-sunken);color:var(--green)}.layers-empty{margin:18px 12px;padding:26px 14px;border:1px dashed var(--line-strong);border-radius:12px;background:var(--surface-soft)}.empty-canvas-hint{padding:20px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-overlay, #fffffff0);box-shadow:0 8px 24px #1725180a;color:var(--text-secondary)}@media(max-width:720px){.empty-state.library-empty{flex-direction:column;gap:18px;text-align:center;min-height:0;padding:28px 20px;border-radius:16px}.empty-state-copy{max-width:100%}.empty-state-actions{justify-content:center}.empty-state-actions .button{min-height:44px}}.mobile-menu-help[data-v-c97414cd],.mobile-account-label[data-v-c97414cd]{display:none}.sidebar-footer[data-v-c97414cd]{margin-top:auto;padding-top:10px;border-top:1px solid var(--line, #dce2d5);display:flex;flex-direction:column;gap:8px;min-width:0;flex-shrink:0;color:var(--ink, #3f4a3a)}.sidebar-help[data-v-c97414cd]{width:100%;justify-content:flex-start;gap:10px;padding:10px 8px;border-radius:9px;font-size:11px;text-align:left;color:var(--text-muted, #7a8674)}.sidebar-help[data-v-c97414cd]:hover{background:var(--surface-hover, #e6ebdf);color:var(--ink, #3f4a3a)}.sidebar-help svg[data-v-c97414cd]{flex-shrink:0}.sidebar-userbox[data-v-c97414cd]{position:relative;width:100%}.sidebar-help[data-v-c97414cd],.library-account[data-v-c97414cd]{height:40px;min-height:40px;flex-shrink:0}.library-account[data-v-c97414cd]{padding:4px 8px}.account-summary strong[data-v-c97414cd],.account-summary span[data-v-c97414cd]{line-height:16px}.account-menu[data-v-c97414cd]{top:auto;bottom:calc(100% + 8px);left:0;right:auto;width:100%;min-width:220px;max-width:calc(100vw - 24px);z-index:40}.account-menu button[data-v-c97414cd]{text-align:left;line-height:1.4;min-height:40px}.account-menu button svg[data-v-c97414cd]{flex-shrink:0}.account-menu-identity[data-v-c97414cd]{padding:10px;margin-bottom:4px;border-bottom:1px solid var(--line, #e2e7dc);overflow-wrap:anywhere}.account-menu-identity strong[data-v-c97414cd],.account-menu-identity span[data-v-c97414cd],.account-menu-identity small[data-v-c97414cd]{display:block;font-size:12px;line-height:1.7}.account-menu-identity span[data-v-c97414cd],.account-menu-identity small[data-v-c97414cd]{font-size:11px;color:var(--text-muted, #7a8674)}.compact[data-v-c97414cd]{width:100%;align-items:center}.compact .sidebar-help[data-v-c97414cd],.compact .library-account[data-v-c97414cd]{width:40px;padding:4px;justify-content:center;margin:auto}.compact .sidebar-help span[data-v-c97414cd],.compact .account-summary[data-v-c97414cd],.compact .account-chevron[data-v-c97414cd]{display:none}.compact .account-menu[data-v-c97414cd]{left:calc(100% + 8px);bottom:0;width:248px}@media(max-width:720px){.sidebar-footer[data-v-c97414cd]{align-items:center}.sidebar-help[data-v-c97414cd],.library-account[data-v-c97414cd]{width:36px;padding:4px;justify-content:center;margin:auto}.sidebar-help span[data-v-c97414cd],.account-summary[data-v-c97414cd],.account-chevron[data-v-c97414cd]{display:none}.account-menu[data-v-c97414cd]{left:calc(100% + 8px);bottom:0;top:auto;right:auto;width:248px;min-width:0;max-width:calc(100vw - 76px)}.compact .sidebar-help[data-v-c97414cd],.compact .library-account[data-v-c97414cd]{width:34px}}@media(max-width:720px){.sidebar-footer[data-v-c97414cd],.sidebar-footer.compact[data-v-c97414cd]{margin:0;padding:0;border:0;flex:0 0 68px;width:68px;align-self:stretch;justify-content:center}.sidebar-help[data-v-c97414cd]{display:none}.sidebar-userbox[data-v-c97414cd]{height:100%;display:flex;align-items:center}.library-account[data-v-c97414cd],.compact .library-account[data-v-c97414cd]{width:100%;height:56px;min-height:56px;padding:4px 2px;flex-direction:column;gap:3px;border-radius:10px}.library-account .mobile-account-label[data-v-c97414cd]{display:block;font-size:10px;line-height:14px;color:inherit}.library-account[data-v-c97414cd] .account-avatar{width:23px;height:23px}.account-menu[data-v-c97414cd],.compact .account-menu[data-v-c97414cd]{position:fixed;left:auto;right:12px;bottom:calc(var(--mobile-dock-height) + 8px);top:auto;width:280px;max-width:calc(100vw - 24px);max-height:calc(100dvh - var(--mobile-dock-height) - 70px);overflow-y:auto}.account-menu .mobile-menu-help[data-v-c97414cd]{display:flex}.account-menu button[data-v-c97414cd]{min-height:44px}}.library{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;background:var(--surface, #f8f9f6);color:var(--ink, #303b33)}.library-shell{height:100%;display:flex;flex-direction:column}.library-layout{display:flex;min-height:0;flex:1}.library-sidebar{width:236px;flex-shrink:0;border-right:1px solid var(--line, #e1e5dd);padding:32px 18px 16px;display:flex;flex-direction:column;background:var(--surface-soft, #f3f5ef)}.library-nav-label{font-size:10px;font-weight:650;text-transform:uppercase;letter-spacing:1.7px;color:var(--text-muted, #858d7f);padding:0 14px;margin-bottom:15px}.library-nav{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:12px;border:0;border-radius:8px;background:transparent;padding:13px 14px;margin-bottom:4px;color:var(--text-secondary, #76806f);font-size:13px;text-align:left}.library-nav.active{color:var(--ink, #344f3d);background:var(--surface-hover, #e2e8da);font-weight:600}.library-nav small{margin-left:auto;border-radius:5px;padding:2px 6px;background:var(--surface-soft, #f5f7f0)}.library-folder{margin:34px 12px 24px;padding-top:25px;border-top:1px solid var(--line, #dce2d5)}.library-folder-icon{color:var(--text-secondary, #657754);margin-bottom:12px}.library-folder strong{font-size:12px}.library-folder p{font-size:12px;line-height:1.7;color:var(--text-muted, #7b8477);margin:8px 0 15px}.library-folder a{font-size:11px;color:var(--ink, #426441);display:flex;gap:7px;align-items:center;text-decoration:none}.library-private{display:flex;gap:6px;align-items:center;font-size:10px;color:var(--text-muted, #8a9484);margin-top:22px}.library-account-wrap{position:relative;margin-top:auto;padding-top:14px;border-top:1px solid var(--line, #dce2d5)}.library-account{width:100%;display:flex;align-items:center;gap:9px;min-width:0;padding:8px;border-radius:9px;text-align:left;justify-content:flex-start;color:inherit}.library-account:hover,.library-account[aria-expanded=true]{background:var(--surface-hover, #e6ebdf)}.library-account .account-chevron{color:var(--text-muted, #8a9484);flex-shrink:0}.account-avatar{display:grid;place-items:center;background:var(--surface-sunken, #dfe5d5);width:31px;height:31px;border-radius:50%;font-family:Georgia,serif;flex-shrink:0}.library-account>div:nth-child(2){min-width:0;flex:1}.library-account strong,.library-account span,.library-account small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:11px;line-height:1.7}.library-account span,.library-account small{font-size:10px;color:var(--text-muted, #7a8674)}.library-content{flex:1;min-width:0;overflow-y:auto;padding:42px clamp(24px,4vw,64px) 40px}.library-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:29px}.library-heading-actions{display:flex;gap:8px;flex-shrink:0}.library-banner{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line, #dbe4d0);border-radius:9px;background:var(--surface-soft, #eff4e8);margin:14px 0;font-size:12px;line-height:1.7}.library-banner>span{flex:1}.library-banner>svg{flex-shrink:0}.library-banner.error{background:var(--surface-soft, #fff0e9);border-color:var(--line, #eedace);color:var(--danger, #9f553b)}.library-sync{display:flex;align-items:center;gap:9px;font-size:11px;color:var(--text-muted, #7b876b);margin:15px 0}.library-sync button{background:none;border:none;color:var(--ink, #466435);font-size:11px;text-decoration:underline;margin-left:auto}.sync-dot{width:6px;height:6px;background:var(--accent-soft, #d09d40);border-radius:50%}.pulsing{animation:pulse 1.5s infinite}.library-toolbar{display:flex;justify-content:space-between;gap:15px;margin:25px 0}.library-search{height:var(--control-height, 36px);display:flex;align-items:center;gap:10px;padding:0 13px;border:1px solid var(--line, #dce2d7);border-radius:7px;max-width:350px;width:100%;background:var(--surface, white);color:var(--text-muted, #9aa18f)}.library-search input{border:0;min-width:0;width:100%;background:transparent;font-size:12px;color:var(--ink, #35402e)}.library-sort{width:230px;flex-shrink:0}.project-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:22px}.project-card{border:1px solid var(--line, #e1e5dc);border-radius:12px;overflow:hidden;background:var(--surface, #fff);transition:box-shadow .18s var(--motion-ease, ease),border-color .15s,transform .18s var(--motion-ease, ease);min-width:0}.project-card:hover{border-color:var(--line-strong, #b9c4ad);box-shadow:0 8px 22px #34452d14;transform:translateY(-2px)}.project-card:active{transform:translateY(0)}.project-preview{border:0;width:100%;height:174px;display:grid;place-items:center;position:relative;background:var(--workspace, #eeeee7);padding:19px}.project-preview img{max-width:100%;max-height:136px;object-fit:contain;box-shadow:0 3px 12px #29331c12}.project-preview:disabled{opacity:1}.project-placeholder{display:flex;align-items:center;flex-direction:column;gap:14px;color:var(--text-muted, #adb59f);font-size:10px}.project-active{position:absolute;top:10px;left:10px;background:var(--surface-overlay, #ffffffed);padding:5px 8px;border-radius:5px;font-size:9px;color:var(--ink, #4e6743)}.project-info{padding:12px 16px 13px}.project-title{display:flex;align-items:center;gap:4px}.project-title h3{font-size:13px;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;margin:0;line-height:1.7}.favorite-button{color:var(--text-muted, #b3bba8)}.favorite-button.starred{color:var(--warning, #be9349)}.favorite-button.waiting:disabled{opacity:1;color:var(--warning, #be9349)}.project-meta{font-size:10px;color:var(--text-muted, #929a8b);display:flex;gap:7px;margin-top:2px}.project-status{display:flex;align-items:center;gap:5px;color:var(--text-muted, #8b9980);font-size:9px;margin-top:12px}.project-status.pending{color:var(--danger, #b38a3e)}.project-status.conflict{color:var(--danger, #b86043)}.project-actions{border-top:1px solid var(--line, #edf0e7);padding:7px 11px;display:flex;gap:4px}.project-actions .icon-button{width:30px;height:28px;color:var(--text-muted, #919b87)}.project-actions .project-trash{margin-left:auto}.project-conflict{padding:0 15px 14px}.project-conflict p,.project-error{font-size:11px;line-height:1.6;color:var(--danger, #a06d42)}.project-conflict .text-button{display:block;margin:10px 0 0;background:none;border:0;color:var(--text-muted, #7c876e);text-decoration:underline}.project-error{padding:0 15px 12px}.library-welcome{text-align:center;max-width:520px;margin:28px auto 10px;padding:15px}.library-welcome>p{font-size:13px;color:var(--text-muted, #87917b);line-height:1.9;max-width:390px;margin:18px auto 25px}.library-welcome>.button{margin:auto}.google-connect{background:var(--surface, white);border:1px solid var(--line, #cdd8c2)!important;padding:0 14px}.library-welcome-note{font-size:10px;color:var(--text-muted, #9da58f);display:flex;justify-content:center;align-items:center;gap:7px;margin:18px 0}.library-illustration{width:260px;height:208px;position:relative;margin:0 auto 26px}.illustration-sheet{position:absolute;width:147px;height:161px;border:6px solid white;box-shadow:0 6px 22px #46573513;border-radius:5px}.sheet-back{background:#e6dbc2;left:26px;top:20px;transform:rotate(-13deg)}.sheet-back span{display:block;width:90px;height:8px;margin:21px 13px;background:#bfb595}.sheet-front{background:#e5ebdc;left:87px;top:29px;transform:rotate(9deg);overflow:hidden}.art-circle{position:absolute;width:60px;height:60px;background:#efbd67;border-radius:50%;left:17px;top:15px}.art-arch{position:absolute;width:89px;height:99px;background:#78916d;border-radius:60px 60px 0 0;right:-4px;bottom:-8px}.art-dot{position:absolute;width:31px;height:31px;background:#dc815d;border-radius:50%;left:13px;bottom:16px}.illustration-cloud{position:absolute;bottom:3px;left:2px;width:57px;height:57px;border:5px solid var(--line, #f8f9f6);border-radius:19px;display:grid;place-items:center;background:var(--surface-sunken, #dce6d1);color:var(--text-secondary, #70825e)}.library-footnote{font-size:11px;line-height:1.8;color:var(--text-muted, #8d977e);margin-top:24px}.library-dialog-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--backdrop, #202c2166);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;overflow:auto}.library-dialog{background:var(--surface, #fff);border-radius:17px;width:min(100%,470px);padding:30px;position:relative;max-height:100%;overflow:auto;box-shadow:0 20px 80px #1a291b33}.library-dialog p{font-size:12px;line-height:1.8;color:var(--text-muted, #7e8975)}.library-dialog-close{position:absolute;top:16px;right:16px}.library-dialog code{word-break:break-all;font-size:10px}.drive-permissions{font-size:11px;color:var(--text-secondary, #728465);background:var(--surface-soft, #f2f5ec);padding:12px;border-radius:7px;margin-top:15px}.drive-permissions summary{cursor:pointer}.library-dialog .library-dialog-error{color:var(--danger, #a65a3d)}@keyframes pulse{50%{opacity:.35}}.drive-header-save{max-width:160px}.drive-header-save span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media(min-width:1600px){.project-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.project-preview{height:195px}.project-preview img{max-height:155px}}@media(max-width:1150px){.library-heading{align-items:flex-start;flex-direction:column}.library-sidebar{width:210px}.library-content{padding:30px 25px}}@media(max-width:720px){.library-layout{flex-direction:column}.library-sidebar{width:100%;padding:8px 10px;border-right:0;border-bottom:1px solid var(--line, #e1e5dd);display:flex;flex-direction:row;align-items:center;gap:6px}.library-nav{white-space:nowrap;width:auto;flex:1 1 auto}.library-nav-label,.library-folder{display:none}.library-account-wrap{margin:0;padding:0;border:0;flex-shrink:0}.library-account{padding:4px;gap:0;width:auto}.library-account>div:nth-child(2),.library-account .account-chevron{display:none}.account-menu{left:auto;right:0;bottom:auto;top:calc(100% + 6px);min-width:230px}.library-sidebar nav{display:flex;gap:4px;flex:1;min-width:0;overflow-x:auto}.library-nav{justify-content:center;padding:10px 7px;margin:0;gap:6px;font-size:10px}.library-nav svg{width:15px}.library-nav small{display:none}.library-content{padding:23px 17px}.library-heading{gap:19px;margin-bottom:18px}.library-heading-actions{width:100%;gap:6px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.project-preview{height:132px;padding:15px}.project-preview img{max-height:102px}.project-info{padding:10px}.project-title h3{font-size:11px}.project-meta,.project-status{font-size:9px}.project-actions{padding:5px}.project-actions .icon-button{width:27px}.library-welcome{margin:8px auto}.library-illustration{transform:scale(.85);height:180px;margin-bottom:18px}.library-banner{font-size:11px;padding:10px;gap:8px}.library-dialog{padding:24px}.library-toolbar{gap:8px}.library-search{padding:0 9px}.library-welcome-note{font-size:9px}}@media(prefers-reduced-motion:reduce){.spinning,.pulsing{animation:none}}.library-settings-account{border-bottom:1px solid var(--line, #e2e7dc);padding-bottom:17px;margin-bottom:17px}.library-settings-account strong,.library-settings-account span{display:block;font-size:12px;line-height:1.8}.library-settings-account span{color:var(--text-muted, #7b8970);overflow-wrap:anywhere}@media(max-width:720px){.library-search{min-width:0}}.drive-error-detail{display:block;font-size:11px;opacity:.85;margin-top:5px;overflow-wrap:anywhere}.library-header-controls{display:flex;gap:10px;align-items:center}.account-menu{position:absolute;left:0;right:0;bottom:calc(100% - 6px);background:var(--surface, #fff);border:1px solid var(--line, #dfe4d8);border-radius:10px;box-shadow:0 12px 36px #30382820;padding:6px;z-index:5}.account-menu button{width:100%;justify-content:flex-start;gap:10px;padding:10px;border-radius:6px;font-size:12px;color:var(--ink, #3f4a3a)}.account-menu button:hover:not(:disabled),.account-menu button:focus-visible{background:var(--surface-hover, #f2f4ec)}.account-menu button.current{color:var(--ink, #344f3d);font-weight:600}.library-page{max-width:640px}.library-page-back{display:inline-flex;gap:6px;align-items:center;color:var(--text-secondary, #6f7d63);font-size:12px;margin-bottom:22px}.library-page-body{margin-top:14px}.library-page .setting-row span{overflow-wrap:anywhere}.drive-config{margin-top:10px;font-size:12px;line-height:1.8;color:var(--text-muted, #7e8975)}.drive-config-row{display:flex;gap:8px}.drive-config-row .input-field{flex:1;min-width:0}.drive-config-saved{display:flex;align-items:center;gap:6px;color:var(--ink, #4e6743);font-size:11px}.library-page .storage-card{margin-top:22px}.sample-card .project-preview{background:var(--workspace, #f1ede2)}.sample-badge{position:absolute;top:10px;right:10px;background:#e97451;color:var(--on-inverse, #fff);font-size:9px;font-weight:600;padding:4px 8px;border-radius:5px;letter-spacing:.3px}.welcome-sample,.welcome-link{display:inline-flex;gap:7px;align-items:center;margin-top:6px;font-size:12px;color:var(--text-secondary, #6f7d63)}@media(max-width:720px){.drive-config-row{flex-direction:column}}@media(max-width:720px){.account-menu{left:auto;right:0;bottom:auto;top:calc(100% + 6px);min-width:230px}}.library-heading>.ui-heading{margin-bottom:0}.modal-close,.library-dialog-close{z-index:1}.library-sidebar nav{flex-shrink:0}.library-folder{min-height:0;overflow:auto}@media(max-width:720px){.library-layout{flex-direction:row}.library-sidebar{width:56px;flex-direction:column;align-items:stretch;padding:12px 6px 16px;border-bottom:0;border-right:1px solid var(--line, #e1e5dd);gap:6px}.library-sidebar nav{flex:none;flex-direction:column;overflow:visible;gap:6px}.library-nav{width:100%;min-height:40px;padding:10px;flex:none}.library-nav>span,.library-nav small{display:none}.library-nav svg{width:18px}.library-content{padding:23px 14px}.project-grid{grid-template-columns:1fr}.library-heading-actions{flex-wrap:wrap}.library-heading-actions .primary{margin-left:0}.library-toolbar{flex-wrap:wrap}.library-sort{width:auto;max-width:100%}.library-illustration{max-width:100%}}.library-page{max-width:1040px;margin:0 auto}.library-page-body{margin-top:0}.settings-section{display:grid;gap:12px;margin-bottom:26px}.settings-section:last-child{margin-bottom:8px}.settings-section-head h2{font-size:13px;font-weight:600;letter-spacing:-.2px;margin:0 0 5px;color:var(--ink, #303b33)}.settings-section-head p{font-size:11px;line-height:1.7;color:var(--text-muted, #8b9580);margin:0;max-width:260px}.settings-card{background:var(--surface, #fff);border:1px solid var(--line, #e3e6d9);border-radius:14px;padding:0 22px;box-shadow:0 1px 2px #1a291b0a}.settings-card .setting-row{padding:18px 0;gap:24px}.settings-card .setting-row:last-child{border-bottom:0}.settings-card .setting-row strong{font-size:13px;margin-bottom:5px}.settings-card .setting-row span{font-size:11px;line-height:1.65;max-width:520px}.settings-card .storage-card{margin:0;border:0;border-radius:0;background:none;padding:18px 0;gap:24px}.settings-card .storage-card strong{font-size:13px;margin-bottom:5px}.settings-card .storage-card span{font-size:11px;line-height:1.65;display:block;max-width:520px}.settings-card .storage-card .button,.settings-card .setting-row .button{flex-shrink:0}.settings-card-danger{border-color:var(--line, #eddcd3);background:var(--surface, #fdf8f5)}.settings-card .language-setting select{min-width:170px;max-width:220px}.library-page .ui-heading-page{margin-bottom:34px}@media(min-width:900px){.library-page{padding-top:8px}.library-page .ui-heading-page{flex-direction:row;align-items:center;gap:22px}.library-page .ui-heading-page .ui-heading-icon{flex-basis:62px;width:62px;height:62px;border-radius:17px}.library-page .ui-heading-page .ui-heading-icon svg{width:28px;height:28px}.library-page .ui-heading-page .ui-heading-title{font-size:32px}.library-page .ui-heading-page .ui-heading-description{font-size:13px;margin-top:5px}.settings-section{grid-template-columns:230px minmax(0,1fr);gap:40px;align-items:start;margin-bottom:34px;padding-bottom:0}.settings-section-head{padding-top:6px}.settings-card{padding:0 26px}.settings-card .setting-row{padding:20px 0}}@media(max-width:720px){.settings-card{padding:0 16px;border-radius:12px}.settings-card .setting-row,.settings-card .storage-card{padding:15px 0}.settings-card .language-setting select{min-width:130px}}.welcome-links{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 22px}.library-location{display:flex;align-items:center;gap:4px;min-height:38px;margin:0 0 16px;font-size:12px;min-width:0;color:var(--text-secondary)}.library-location>button{display:flex;gap:7px;align-items:center;border-radius:8px;flex-shrink:0}.library-location>svg{flex-shrink:0;opacity:.6}.library-location>.folder-crumb{padding:8px 10px;margin-left:-10px}.library-location>.folder-crumb:hover{background:var(--surface-soft);color:var(--ink)}.library-location>span:not(.library-selection-hint){padding:8px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.library-location>.button{margin-left:12px}.library-selection-hint{margin-left:auto;font-size:10px;color:var(--text-muted);text-align:right}.folder-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:0 0 25px}.folder-card{display:flex;align-items:center;min-width:0;min-height:92px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:background .15s,border-color .15s,box-shadow .15s}.folder-card:hover{background:var(--surface-hover);border-color:var(--line-strong)}.folder-open{flex:1;min-width:0;display:flex;align-items:center;gap:15px;padding:22px 12px 22px 20px;text-align:left;align-self:stretch}.folder-open>svg{flex-shrink:0;color:var(--text-secondary)}.folder-open>span{min-width:0;display:grid;gap:6px}.folder-open strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.folder-open small{font-size:10px;color:var(--text-muted)}.folder-menu{margin-right:8px;flex-shrink:0}.library .drop-ready{background:var(--surface-soft);border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 20%,transparent)}.drop-ready .folder-open>svg{color:var(--ink)}.project-card{position:relative;-webkit-user-select:none;user-select:none;touch-action:pan-y;cursor:pointer}.project-card.selected{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink)}.project-card.cut{opacity:.5}.project-card.dragging{opacity:.4;transform:scale(.98)}.project-select{position:absolute;z-index:2;top:10px;left:10px;width:28px;height:28px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);display:grid;place-items:center;box-shadow:0 2px 7px #00000014;color:var(--ink);cursor:pointer;opacity:0;transform:translateY(3px) scale(.88);pointer-events:none;transition:opacity .16s ease,transform .2s cubic-bezier(.2,.8,.2,1),background .15s,box-shadow .15s}.project-select:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px}.project-select>svg{width:16px;height:16px}.project-select:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--ink) 15%,transparent)}.project-card:hover .project-select,.project-card:has(:focus-visible) .project-select,.project-card.selected .project-select{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.selected .project-select{background:var(--ink);color:var(--surface);border-color:var(--ink)}.project-card .project-active{left:46px;top:12px}.library-selection-bar,.library-clipboard-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line-strong);border-radius:11px;font-size:12px;position:static;transform:none;margin:0;max-width:100%;width:max-content;pointer-events:auto;box-shadow:0 8px 32px #00000020;background:var(--surface)}.library-selection-bar>strong{margin-right:auto}.library-selection-bar>.icon-button:last-child{margin-left:auto}.library-clipboard-bar>span{flex:1}.library-content{padding-bottom:140px}.library-marquee{position:fixed;pointer-events:none;z-index:45;border:1px solid var(--ink);background:color-mix(in srgb,var(--ink) 12%,transparent);border-radius:4px}.library-drag-preview{position:fixed;pointer-events:none;z-index:150;display:flex;align-items:center;gap:12px;width:245px;padding:15px;border-radius:12px;background:var(--surface);color:var(--ink);border:1px dashed var(--line-strong);box-shadow:0 14px 38px #00000025}.library-drag-preview.valid{border:2px solid var(--ink);background:var(--surface-soft)}.library-drag-preview span{min-width:0;display:grid;gap:5px}.library-drag-preview strong{font-size:12px}.library-drag-preview small{font-size:11px;line-height:1.5;overflow-wrap:anywhere}.library-drag-preview>svg{flex-shrink:0}.library.dragging-projects,.library.dragging-projects *{cursor:grabbing!important}@media(max-width:720px){.library-selection-hint{display:none}.folder-grid{grid-template-columns:1fr}.library-selection-bar,.library-clipboard-bar{width:100%}.library-selection-bar .button{font-size:11px;padding:0 8px}.project-select{width:32px;height:32px}.project-card .project-active{left:50px}.library-content{padding-bottom:200px}}@media(hover:none){.project-select{opacity:1;transform:none;pointer-events:auto}}@media(prefers-reduced-motion:reduce){.project-select{transition:none;transform:none}}.library-feedback{position:fixed;bottom:24px;left:calc(50% + 118px);transform:translate(-50%);z-index:40;display:flex;flex-direction:column;align-items:center;gap:12px;width:max-content;max-width:calc(100vw - 300px);pointer-events:none}.library-feedback .activity-hub.embedded{position:static;left:auto;bottom:auto;transform:none;width:100%;max-width:600px;gap:8px}.library-feedback .activity-hub:empty{display:none}.library-selection-bar,.library-clipboard-bar{border-radius:14px;padding:12px 14px;box-shadow:0 10px 32px #00000020,0 1px 3px #0000000a}.library-feedback .activity-row,.library-feedback .toast-message{border-radius:12px}.library-dialog-backdrop{z-index:60}.library-folder-section{margin:4px 0 28px}.library-section-heading{display:flex;align-items:center;gap:9px;margin-bottom:14px}.library-section-heading h2{font-size:12px;font-weight:600;letter-spacing:.1px;color:var(--text-secondary)}.library-section-heading>span{display:grid;place-items:center;min-width:21px;height:21px;padding:0 6px;border-radius:7px;background:var(--surface-sunken);font-size:10px;color:var(--text-muted)}.library-section-heading>i{flex:1;height:1px;margin-left:5px;background:var(--line);opacity:.55}.folder-grid{gap:22px;margin:0}.folder-card{min-height:110px;border-radius:16px;background:linear-gradient(120deg,color-mix(in srgb,var(--warning) 5%,var(--surface)),var(--surface) 70%);box-shadow:0 2px 4px #00000004;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}.folder-card:hover{border-color:color-mix(in srgb,var(--warning) 45%,var(--line));background:linear-gradient(120deg,color-mix(in srgb,var(--warning) 9%,var(--surface)),var(--surface) 80%);box-shadow:0 6px 20px #0000000c;transform:translateY(-2px)}.folder-open{justify-content:flex-start;gap:15px;padding:22px 6px 22px 20px}.folder-open>span:not(.folder-art){min-width:0;display:grid;gap:7px}.folder-open strong{font-size:13px;line-height:1.4}.folder-open small{font-size:11px;line-height:1.4}.folder-menu{align-self:flex-start;margin:12px 8px 0 0;opacity:.5;transition:opacity .15s}.folder-card:hover .folder-menu,.folder-card:focus-within .folder-menu{opacity:1}.folder-art{position:relative;display:block!important;width:56px;height:50px;flex:0 0 56px;isolation:isolate;filter:drop-shadow(0 4px 4px #62401918)}.folder-art-back{position:absolute;left:4px;right:4px;top:10px;bottom:5px;border-radius:5px;background:#c98e48;box-shadow:inset 0 1px #ffffff40}.folder-art-back:before{content:"";position:absolute;left:0;top:-5px;width:22px;height:10px;background:#c98e48;border-radius:5px 7px 0 0;box-shadow:inset 0 1px #ffffff40}.folder-art-paper{position:absolute;left:9px;right:8px;top:13px;height:25px;border:1px solid #dacfc0;border-radius:3px;background:#fff9ed;transform:rotate(4deg);transition:transform .22s,translate .22s}.folder-art-paper.paper-back{top:12px;background:#eee2cb;transform:rotate(-7deg)}.folder-art-front{position:absolute;left:3px;right:3px;bottom:4px;height:30px;border:1px solid #db9c4c;border-top-color:#ffe0a8;border-radius:4px 5px 6px 6px;background:linear-gradient(165deg,#f3cc8a,#e6ad5e 80%);box-shadow:inset 0 1px #ffffff40;transform:perspective(100px) rotateX(-7deg);transform-origin:center bottom;transition:transform .24s cubic-bezier(.2,.8,.2,1)}.folder-card:hover .folder-art-front,.folder-card.drop-ready .folder-art-front{transform:perspective(100px) rotateX(-24deg)}.folder-card:hover .folder-art-paper,.folder-card.drop-ready .folder-art-paper{translate:0 -3px}.library .folder-card.drop-ready{border-color:var(--warning);box-shadow:0 0 0 3px color-mix(in srgb,var(--warning) 18%,transparent);background:color-mix(in srgb,var(--warning) 10%,var(--surface))}.library-organized-empty{display:flex;align-items:center;gap:30px;min-height:220px;padding:36px clamp(24px,4vw,52px);border:1px dashed var(--line);border-radius:18px;background:linear-gradient(110deg,color-mix(in srgb,var(--warning) 3%,var(--surface-soft)),var(--surface-soft));margin-top:8px}.organized-illustration{position:relative;flex:0 0 132px;width:132px;height:132px;border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--warning) 8%,transparent)}.organized-illustration .folder-art{transform:scale(1.35)}.organized-illustration>svg{position:absolute;right:3px;bottom:13px;box-sizing:content-box;padding:5px;background:var(--surface);border:1px solid var(--line);border-radius:50%;color:var(--green)}.organized-copy{min-width:0;max-width:490px}.organized-copy h2{font-size:18px;font-weight:550;letter-spacing:-.3px;line-height:1.4;margin-bottom:8px}.organized-copy p{font-size:12px;line-height:1.8;color:var(--text-muted);max-width:430px}.organized-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:20px}.organized-actions .text-button{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary)}@media(min-width:1600px){.folder-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media(max-width:1150px){.library-feedback{left:calc(50% + 105px)}}@media(max-width:720px){.library-feedback{left:50%;bottom:calc(var(--mobile-dock-height) + 12px);max-width:calc(100vw - 32px);width:calc(100vw - 32px)}.library-folder-section{margin-bottom:24px}.folder-card{min-height:100px}.library-organized-empty{flex-direction:column;gap:18px;text-align:center;padding:28px 20px}.organized-copy h2{font-size:17px}.organized-actions{justify-content:center;gap:12px}}@media(prefers-reduced-motion:reduce){.folder-card,.folder-art-paper,.folder-art-front{transition:none}}.modal.skill-guide{width:min(100%,760px);overflow:hidden;display:flex;flex-direction:column}.guide-head{flex:none}.guide-switches{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}.guide-body{min-height:0;overflow:auto;margin:0 -30px -30px;padding:0 30px 30px;border-top:1px solid var(--line, #e9ecdf);overscroll-behavior:contain}.guide-steps{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:14px}.guide-steps li{border:1px solid var(--line, #e3e6d9);border-radius:14px;padding:18px 20px 20px;background:var(--surface, #fff);box-shadow:0 1px 2px #1a291b0a}.guide-steps h3{justify-content:flex-start;display:flex;align-items:center;gap:12px;font-size:14px;font-weight:600;margin:0 0 8px}.guide-steps h3 span{flex:none;width:26px;height:26px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;line-height:1;padding:0;font-size:13px;font-weight:700;color:#fff;background:var(--accent, #e97451)}.guide-steps p{font-size:12px;line-height:1.7;color:var(--text-secondary, #5f6b58);margin:0 0 10px}.guide-steps .guide-note{font-size:11px;color:var(--text-muted, #7e8975)}.guide-steps .guide-note code,.guide-steps p code{font-size:11px;padding:1px 5px;border-radius:4px;background:var(--surface-soft, #f2f5ec);overflow-wrap:anywhere}.guide-steps .guide-warning{font-size:11px;color:var(--danger, #a65a3d)}.guide-figure{position:relative;margin:10px 0 12px;border:1px solid var(--line, #e3e6d9);border-radius:10px;overflow:hidden;background:var(--surface-sunken, #edf0e8)}.guide-figure img{display:block;width:100%;height:auto}.guide-figure img.dark,:root[data-theme=dark] .guide-figure img.light{display:none}:root[data-theme=dark] .guide-figure img.dark{display:block}.guide-marker{position:absolute;pointer-events:none}.guide-marker:before{content:"";position:absolute;top:-7px;right:-7px;bottom:-7px;left:-7px;border:3px solid var(--accent, #e97451);border-radius:8px;box-shadow:0 0 0 2px #fffa,inset 0 0 0 2px #fffa}.guide-marker b{position:absolute;left:-11px;top:-11px;width:24px;height:24px;border-radius:50%;background:var(--accent, #e97451);color:#fff;font-size:12px;font-weight:700;font-style:normal;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 1px 3px #0004}.guide-actions{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:6px}.guide-actions .button{text-decoration:none}.guide-field{display:block;margin-top:14px}.guide-field strong{display:block;font-size:12px;margin-bottom:4px}.guide-field span{display:block;font-size:11px;line-height:1.6;color:var(--text-muted, #7e8975);margin-bottom:8px}.guide-field .input-field{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.guide-code{position:relative;margin:10px 0}.guide-code pre{margin:0;padding:14px 16px 44px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11.5px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;color:var(--ink, #303b33);background:var(--surface-soft, #f2f5ec);border:1px solid var(--line, #e3e6d9);border-radius:10px}.guide-code .button{position:absolute;right:10px;bottom:10px}.settings-card .setting-row .button.primary{text-decoration:none}.settings-card .skill-missing{font-size:11px;color:var(--text-muted, #7e8975);max-width:220px;text-align:right}.guide-code-inline pre{padding-right:120px;padding-bottom:14px;min-height:46px}.guide-code-inline .button{top:50%;bottom:auto;transform:translateY(-50%)}@media(max-width:720px){.guide-switches{margin-bottom:18px}.guide-steps li{padding:14px 14px 16px}.guide-code pre{padding-bottom:50px}}@media(max-width:650px){.guide-body{margin:0 -20px -25px;padding:0 20px 25px}}.ui-color{position:relative;display:flex;min-width:0}.ui-color-trigger{display:flex;align-items:center;justify-content:flex-start;gap:9px;width:100%;min-width:0;height:var(--control-height, 36px);padding:0 9px;border:1px solid var(--line, #e1e3d9);border-radius:5px;background:var(--surface, #fff);color:inherit;font:inherit;font-size:10px;text-align:left;cursor:pointer}.ui-color-trigger:hover:not(:disabled),.ui-color-trigger[aria-expanded=true]{border-color:var(--line-strong, #c2ccb4)}.ui-color-trigger:disabled{opacity:.5;cursor:not-allowed}.ui-color-compact .ui-color-trigger{height:33px}.ui-color-plain .ui-color-trigger{height:auto;gap:7px;padding:0;border:0;border-radius:4px;background:none;font-size:9px}.ui-color-plain .ui-color-trigger:focus-visible{box-shadow:0 0 0 2px var(--surface, #fff),0 0 0 4px var(--focus, #e96b48)}.ui-color-text{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ui-color-chip,.ui-color-swatch{position:relative;flex-shrink:0;border-radius:4px;box-shadow:inset 0 0 0 1px #0000001f,inset 0 0 0 2px #ffffff26}.ui-color-chip{width:18px;height:18px}.ui-color-plain .ui-color-chip{width:16px;height:16px}.ui-color-panel{position:fixed;z-index:300;width:228px;padding:0 0 11px;border:1px solid var(--line, #dfe4d8);border-radius:10px;background:var(--surface, #fff);box-shadow:0 12px 36px #30382820;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain}.ui-color-area{position:relative;height:128px;flex-shrink:0;margin:11px 11px 0;border-radius:8px;box-shadow:inset 0 0 0 1px #0000001f;cursor:crosshair;touch-action:none;background:linear-gradient(to top,#000,#0000),linear-gradient(to right,#fff,var(--ui-hue, #f00))}.ui-color-handle{position:absolute;width:13px;height:13px;margin:-7px 0 0 -7px;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #00000038,0 1px 4px #0000004d;pointer-events:none}.ui-color-handle.on-light{border-color:#1b1c1e;box-shadow:0 0 0 1px #ffffff5c,0 1px 4px #00000026}.ui-color-controls{display:flex;align-items:center;gap:8px;padding:11px 11px 0}.ui-color-tool{display:grid;place-items:center;width:26px;height:26px;flex-shrink:0;border:1px solid var(--line, #e1e3d9);border-radius:6px;background:var(--surface, #fff);color:var(--text-secondary, #58674f);cursor:pointer}.ui-color-tool:hover{background:var(--surface-hover, #e5ebdf);color:var(--ink, #343a35)}.ui-color-panel input.ui-color-hue{-webkit-appearance:none;-moz-appearance:none;appearance:none;flex:1;width:auto;min-width:0;height:10px;margin:0;border-radius:5px;box-shadow:inset 0 0 0 1px #0000001f;background:linear-gradient(to right,red,#ff0 17%,#0f0 33%,#0ff,#00f 67%,#f0f 83%,red);cursor:pointer}.ui-color-panel input.ui-color-hue::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:#0000;box-shadow:0 0 0 1px #00000047,0 1px 3px #0000004d;cursor:grab}.ui-color-panel input.ui-color-hue::-moz-range-thumb{width:14px;height:14px;border:2px solid #fff;border-radius:50%;background:#0000;box-shadow:0 0 0 1px #00000047,0 1px 3px #0000004d;cursor:grab}.ui-color-hex{display:flex;align-items:center;gap:2px;margin:9px 11px 0;padding:0 4px 0 8px;height:30px;border:1px solid var(--line, #e1e3d9);border-radius:6px;background:var(--surface-soft, #f8f9f6);font-size:11px;color:var(--text-muted, #707b69)}.ui-color-hex input{width:100%;min-width:0;border:0;background:none;padding:0;font:inherit;font-size:11px;letter-spacing:.6px;text-transform:uppercase;color:var(--ink, #343a35)}.ui-color-keep{display:grid;place-items:center;width:22px;height:22px;flex-shrink:0;border:0;border-radius:5px;background:none;color:var(--text-muted, #707b69);cursor:pointer}.ui-color-keep:hover{background:var(--surface-hover, #e5ebdf);color:var(--ink, #343a35)}.ui-color-keep.kept{color:var(--accent, #e96b48)}.ui-color-group{margin:12px 11px 0}.ui-color-group h4{margin:0 0 7px;font-size:9px;font-weight:500;letter-spacing:.5px;text-transform:uppercase;color:var(--text-muted, #707b69)}.ui-color-row{display:grid;grid-template-columns:repeat(8,1fr);gap:6px}.ui-color-swatch{display:grid;place-items:center;width:100%;aspect-ratio:1;padding:0;border:0;cursor:pointer;color:#fff}.ui-color-swatch.on-light{color:#1b1c1e}.ui-color-swatch:hover{transform:scale(1.12)}.ui-color-swatch.chosen{box-shadow:inset 0 0 0 1px #0000001f,0 0 0 2px var(--surface, #fff),0 0 0 3.5px var(--accent, #e96b48)}.ui-color-cell{position:relative;display:flex}.ui-color-forget{position:absolute;top:-5px;right:-5px;display:none;place-items:center;width:13px;height:13px;padding:0;border:1px solid var(--line, #e1e3d9);border-radius:50%;background:var(--surface, #fff);color:var(--text-secondary, #58674f);cursor:pointer}.ui-color-cell:hover .ui-color-forget,.ui-color-cell:focus-within .ui-color-forget{display:grid}.ui-color-forget:hover{color:var(--danger, #a74f38);border-color:var(--danger, #a74f38)}.ui-color-empty{margin:0;font-size:9px;line-height:1.6;color:var(--text-muted, #707b69)}@media(prefers-reduced-motion:reduce){.ui-color-swatch:hover{transform:none}}@media(pointer:coarse){.ui-color-panel{width:252px}.ui-color-area{height:152px}.ui-color-forget{display:grid;width:15px;height:15px}}.toggle-list{display:flex;flex-direction:column;gap:2px}.ui-toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:32px;padding:2px 0}.ui-toggle-label{font-size:11px;line-height:1.4;color:var(--ink, #3f4a3a);cursor:pointer;min-width:0;overflow-wrap:anywhere}.ui-toggle.disabled{opacity:.45}.ui-toggle.disabled .ui-toggle-label{cursor:not-allowed}:root{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Arial,sans-serif;color:#343a35;background:#f8f7f4;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--accent: #e96b48;--accent-soft: #faece5;--ink: #343a35;--muted: #92948e;--line: #e9e8e2;--panel: #fdfcf9;--green: #527360}*{scrollbar-width:thin}:root{scrollbar-color:var(--scroll-thumb, #c7ccbe) transparent}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track,::-webkit-scrollbar-corner{background:transparent}::-webkit-scrollbar-thumb{background-color:var(--scroll-thumb, #c7ccbe);border:3px solid transparent;border-radius:8px;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background-color:var(--scroll-thumb-hover, #a8b09b)}*{box-sizing:border-box}body{margin:0;touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%;user-select:none;-webkit-user-select:none}input,textarea,[contenteditable]{user-select:text;-webkit-user-select:text}button,input,select,textarea{font:inherit}button{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;color:inherit;background:none;border:0;transition:background .15s,color .15s,box-shadow .15s}button:disabled{opacity:.35;cursor:not-allowed}button:not(:disabled):active{transform:translateY(1px)}a{color:inherit;text-decoration:none}input,textarea,select{color:inherit;min-width:0}input[type=number]::-webkit-inner-spin-button{opacity:0}input[type=number]:hover::-webkit-inner-spin-button{opacity:1}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:3px;background:var(--line, #dfdfd7);border-radius:2px;margin:17px 0 8px;accent-color:var(--accent);cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border:2px solid var(--panel);background:#55694f;border-radius:50%;box-shadow:0 0 0 1px #55694f}input[type=range]::-moz-range-thumb{width:10px;height:10px;border:2px solid var(--panel);background:#55694f;border-radius:50%}input[type=checkbox]{accent-color:var(--accent)}h2,h3,p{margin:0}h2{font-size:14px;font-weight:600;letter-spacing:-.2px}h3{font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}h3>svg{color:var(--text-muted, #999d92)}kbd{font-family:inherit;font-size:10px;color:var(--text-muted, #8c9086);background:var(--surface-soft, #f1f1eb);padding:3px 5px;border-radius:4px;white-space:nowrap}hr{border:0;border-top:1px solid var(--line);margin:6px 0}svg{flex-shrink:0}.app-shell{height:100dvh;min-height:480px;display:flex;flex-direction:column;overflow:hidden}.text-button{padding:6px 0;font-size:12px}.text-button:hover{color:var(--accent)}.status-dot{display:inline-block;width:5px;height:5px;background:#7b9271;border-radius:50%;flex-shrink:0}.status-dot.warning{background:#e39146}.icon-button{padding:0;width:30px;height:30px;border-radius:5px;color:var(--text-muted, #7e8578);flex-shrink:0}.icon-button:hover:not(:disabled){background:var(--surface-hover, #ebece5);color:var(--ink, #384c3c)}.button{border:1px solid var(--line, #dedfd6);background:var(--panel);border-radius:6px;white-space:nowrap}.button:hover:not(:disabled){background:var(--surface-hover, #f0f0e8);border-color:var(--line, #cbd0c1)}.button.primary{background:var(--accent);color:var(--on-inverse, white);border-color:var(--accent);box-shadow:0 2px 2px #73381306}.button.primary:hover:not(:disabled){background:#dc5e3d;border-color:var(--accent-border, #dc5e3d)}.editor-body{flex:1;display:flex;min-height:0}.tool-rail{width:66px;min-width:66px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:20px 0 16px;z-index:20}.tool-rail-main,.tool-rail-bottom{display:flex;align-items:center;flex-direction:column;gap:8px}.tool-button{position:relative;width:42px;height:42px;border-radius:7px;color:var(--text-secondary, #7b8277)}.tool-button.active{background:var(--accent-soft);color:var(--accent)}.tool-button.active:before{content:"";position:absolute;width:3px;height:21px;left:-12px;background:var(--accent);border-radius:0 3px 3px 0}.tool-button:hover{background:var(--surface-hover, #efefe7);color:var(--ink, #414e40)}.tool-button.active:hover{background:var(--accent-soft);color:var(--accent)}.tool-tooltip{pointer-events:none;position:absolute;left:49px;display:flex;align-items:center;gap:12px;background:#364236;color:var(--on-inverse, #fff);padding:9px 12px;font-size:11px;white-space:nowrap;opacity:0;border-radius:6px;box-shadow:0 4px 16px #24331e20;transform:translate(-3px);transition:.1s;z-index:80}.tool-tooltip kbd{background:#52604f;color:var(--on-inverse, #e2e5dd)}.tool-button:hover .tool-tooltip{opacity:1;transform:translate(0)}.tool-corner{position:absolute;right:8px;bottom:8px;width:0;height:0;border-bottom:4px solid var(--line, #9da293);border-left:4px solid transparent}.rail-separator{width:26px;height:1px;background:var(--line);margin:7px 0}.properties-panel{width:224px;min-width:224px;background:var(--panel);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:10}.panel-heading{height:61px;min-height:61px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.panel-heading h2{font-size:12px}.shortcut-badge{border:1px solid var(--line, #e4e5dc);font-size:9px;color:var(--text-muted, #92988b);padding:2px 5px;border-radius:4px}.properties-scroll{overflow:auto;flex:1}.property-section{padding:21px 19px;border-bottom:1px solid var(--line)}.property-section:last-child{border-bottom:0}.small{font-size:11px;line-height:1.7}.muted{color:var(--text-muted, #95998d)}.mt{margin-top:12px}.full-width{width:100%}.center{text-align:center}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.label-value{display:flex;justify-content:space-between;align-items:center;font-size:10px;gap:8px}.label-value h3{margin:0}.label-value>span:last-child{white-space:nowrap}.number-field{height:33px;border:1px solid var(--line, #e0e2d7);background:var(--surface, #fbfbf7);border-radius:5px;display:flex;gap:8px;align-items:center;padding:0 8px;font-size:11px}.number-field>span{color:var(--text-muted, #9b9f93);font-size:10px}.number-field>svg{color:var(--text-muted, #949b8a)}.number-field input{width:100%;background:none;border:0;padding:0;font-size:10px;height:27px}.canvas-preview-mini{height:104px;background:var(--workspace, #f1f1eb);border:1px solid var(--line, #e8e9df);border-radius:6px;display:flex;align-items:center;justify-content:center;margin-bottom:17px;overflow:hidden}.canvas-preview-mini>div{max-width:120px;max-height:76px;width:100%;border:1px solid var(--line, #dddccb);box-shadow:0 2px 4px #1f2d1910;display:flex;align-items:center;justify-content:center}.canvas-preview-mini span{font-size:9px;color:var(--text-secondary, #7f826f);background:var(--surface-overlay, #ffffff70);padding:4px 7px;border-radius:3px}.add-image-card{display:flex;flex-direction:column;width:100%;border:1px dashed var(--line, #d6dbcc);background:var(--surface, #f8f9f2);border-radius:7px;gap:5px;padding:20px 10px}.add-image-card:hover{background:var(--surface-hover, #f0f3e7);border-color:var(--line, #a9b696)}.add-image-card>span{width:39px;height:39px;border-radius:10px;background:var(--surface-sunken, #e9eddd);display:flex;align-items:center;justify-content:center;color:var(--text-muted, #899674);margin-bottom:5px}.add-image-card strong{font-size:11px;font-weight:500}.add-image-card small{font-size:9px;color:var(--text-muted, #9ca28f)}.quick-add{display:flex;gap:9px;margin-top:10px}.quick-add button{border:1px solid var(--line, #e3e5da);border-radius:5px;width:50%;height:33px;font-size:10px;color:var(--text-muted, #7c8571)}.quick-add button:hover{background:var(--surface-hover, #f0f2e9)}.property-section>p+.button{margin-top:14px}.local-note{padding:17px 15px;display:flex;gap:8px;align-items:center;border-top:1px solid var(--line);font-size:8px;color:var(--text-muted, #939a88);line-height:1.6}.local-note-icon{width:24px;height:28px;display:flex;align-items:center;justify-content:center;background:var(--surface-soft, #f1f3e8);border-radius:6px}.local-note small{display:block;font-size:8px;color:var(--text-muted, #b0b4a6)}.alignment-buttons{display:flex;justify-content:space-between;margin-top:13px;padding-top:8px;border-top:1px solid var(--line)}.alignment-buttons .icon-button{width:25px;height:27px}.tiny-label{color:var(--text-muted, #a4a99b);font-size:9px;font-weight:400}.palette{display:flex;gap:7px;flex-wrap:wrap;margin-top:12px}.palette button{width:16px;height:16px;border-radius:50%;border:1px solid #00000010}.palette button.chosen{outline:1.5px solid #7b846f;outline-offset:2px}.no-fill{color:var(--text-muted, #92998a);font-size:9px;margin-top:7px;padding-bottom:0}.shape-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.shape-button{height:45px;border:1px solid var(--line, #e0e4d8);border-radius:5px;color:var(--text-muted, #86917a)}.shape-button:hover,.shape-button.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-border, #ecc0ad)}.shape-grid+p{margin-top:13px}.brush-preview{background:var(--workspace, #f0f2e9);border-radius:5px;margin:4px 0 15px;height:57px;padding:5px}.text-content{width:100%;resize:vertical;min-height:60px;max-height:220px;background:var(--surface, #fafbf6);border:1px solid var(--line, #e1e4d9);border-radius:5px;font-size:11px;line-height:1.5;padding:8px}.select-field,.input-field{height:var(--control-height, 36px);border:1px solid var(--line, #dde1d4);border-radius:5px;background:var(--surface, #fdfdf9);padding:0 10px;font-size:11px}.is-selected{background:var(--surface-hover, #edf0e4)!important;color:var(--text-secondary, #60714d)!important}.danger-text{color:var(--danger, #bc6856)}.ratio-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:15px}.dimension-label{padding:13px 0;font-size:12px;color:var(--text-secondary, #718063)}.tool-description-icon{width:52px;height:52px;background:var(--surface-sunken, #edf0e5);border-radius:12px;display:flex;align-items:center;justify-content:center;color:var(--text-muted, #94a181);margin-bottom:20px}.canvas-area{flex:1;min-width:0;display:flex;flex-direction:column;background:var(--workspace, #eeeee8)}.canvas-toolbar{height:48px;min-height:48px;display:flex;justify-content:space-between;align-items:center;padding:0 22px;border-bottom:1px solid var(--line, #e3e5dc);background:var(--surface-soft, #f6f6f0);z-index:5}.view-toggles{display:flex;align-items:center;gap:7px}.view-toggles .icon-button{width:27px;height:27px}.toolbar-divider{height:16px;width:1px;background:var(--surface-sunken, #dfe3d7);margin:0 3px}.workspace{flex:1;position:relative;overflow:hidden;background-color:var(--workspace, #eeeee8);background-image:radial-gradient(var(--workspace-dot, #cdd0c2) .65px,transparent .65px);background-size:14px 14px;touch-action:none;-webkit-user-select:none;user-select:none}.workspace.tool-hand{cursor:grab}.workspace.tool-hand:active{cursor:grabbing}.workspace.tool-brush,.workspace.tool-shape,.workspace.tool-crop{cursor:crosshair}.workspace.tool-text{cursor:text}.artboard-position{position:absolute;top:48%;left:50%;box-shadow:0 3px 6px #3e4b3120,0 20px 45px -12px #3e4b3122;background:#fff}.artboard{display:block;overflow:visible}.artboard-label{position:absolute;top:-25px;left:0;right:0;display:flex;justify-content:space-between;color:var(--text-muted, #949b88);font-size:9px;letter-spacing:.1px;pointer-events:none}.artboard-label>span:last-child{font-size:8px;color:var(--text-muted, #a9ae9f)}.canvas-object{cursor:inherit}.tool-select .canvas-object{cursor:move}.tool-select .canvas-object:hover{filter:drop-shadow(0 0 .5px #e96b4855)}.selection-overlay{position:absolute;left:0;top:0;overflow:visible;pointer-events:none}.selection-handle{fill:#fff;stroke:var(--accent);pointer-events:all}.handle-nw,.handle-se{cursor:nwse-resize}.handle-ne,.handle-sw{cursor:nesw-resize}.rotation-handle{cursor:crosshair}.canvas-controls{position:absolute;bottom:52px;left:50%;transform:translate(-50%);height:39px;display:flex;align-items:center;padding:4px 7px;gap:3px;border:1px solid var(--line, #dddfd3);border-radius:8px;background:var(--surface, #fdfdf8);box-shadow:0 3px 9px #4a553418;z-index:3}.canvas-controls .icon-button{width:25px;height:27px;color:var(--text-muted, #8d9680)}.zoom-value{font-size:11px;min-width:53px;gap:2px}.zoom-value span{font-size:9px;color:var(--text-muted, #9a9f90)}.canvas-controls>span{width:1px;height:16px;background:var(--surface-sunken, #e4e7da);margin:0 7px}.fit-button{font-size:10px;padding:0 6px;color:var(--text-muted, #7a866c);white-space:nowrap}.canvas-tip{position:absolute;bottom:23px;left:0;right:0;display:flex;align-items:center;justify-content:center;gap:7px;pointer-events:none;font-size:9px;color:var(--text-muted, #9ca38f)}.tip-key{background:var(--surface-sunken, #e7e9de);border:1px solid var(--line, #dadecf);border-radius:3px;padding:2px 4px;font-size:8px;line-height:1.1}.status-bar{height:29px;min-height:29px;padding:0 16px;display:flex;align-items:center;justify-content:space-between;background:var(--surface-soft, #f6f6f0);border-top:1px solid var(--line, #e1e4d8);font-size:8px;color:var(--text-muted, #9aa28d);gap:10px}.status-bar>span{display:flex;gap:6px;align-items:center;white-space:nowrap}.status-bar .status-dot{width:4px;height:4px}.status-middle{gap:10px!important}.empty-canvas-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;color:var(--text-muted, #89977b);display:flex;flex-direction:column;align-items:center;gap:8px;pointer-events:none;text-align:center;width:260px}.empty-canvas-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin-top:8px;pointer-events:all}.empty-canvas-actions button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:14px 8px;border:1px solid var(--line, #e1e5d9);border-radius:9px;background:var(--surface, #fdfdf9);color:var(--text-secondary, #5f6d55);font-size:11px;font-weight:500;transition:border-color .15s,background .15s}.empty-canvas-actions button:hover{border-color:var(--line, #b9c4ad);background:var(--surface-hover, #f3f5ee);color:var(--ink, #3e4d35)}.empty-canvas-actions button svg{color:var(--text-muted, #8a9a7c)}.empty-canvas-hint strong{font-size:15px;font-weight:500}.empty-canvas-hint span{font-size:10px}.empty-canvas-hint button{pointer-events:all;background:var(--surface-overlay, #ffffffdd)}.layers-panel{width:256px;min-width:256px;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;z-index:15}.sidebar-tabs{height:61px;min-height:61px;display:flex;align-items:stretch;padding:0 16px;gap:19px;border-bottom:1px solid var(--line)}.sidebar-tabs>button{padding:0;font-size:11px;color:var(--text-muted, #92988a);gap:7px;position:relative}.sidebar-tabs>button.active{color:var(--ink, #454f3e)}.sidebar-tabs>button.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--accent)}.sidebar-tabs>button>span{font-size:8px;background:var(--surface-soft, #eff0e8);padding:2px 5px;border-radius:4px;color:var(--text-muted, #8a9480)}.layers-toolbar{height:44px;min-height:44px;padding:0 17px;display:flex;align-items:center;justify-content:space-between}.layers-toolbar>span{display:flex;align-items:center;font-size:10px;gap:8px;color:var(--text-muted, #939b87)}.layer-list{overflow:auto;flex:1;padding:0 9px 10px}.layer-row{display:flex;align-items:center;gap:9px;min-height:46px;padding:6px 7px;margin-bottom:3px;border:1px solid transparent;border-radius:5px;cursor:pointer}.layer-row:hover{background:var(--surface-hover, #f2f4ea)}.layer-row.selected{background:var(--surface-hover, #faeee7);border-color:var(--line, #f3d9ca)}.layer-row.hidden .layer-name,.layer-row.hidden .layer-thumb{opacity:.4}.layer-thumb{width:32px;height:32px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--surface-soft, #f1f0e8);border:1px solid var(--line, #e9e8dd);border-radius:4px;overflow:hidden;color:var(--text-muted, #7c8770)}.layer-thumb svg{width:100%;height:100%}.layer-thumb.text-thumb svg{width:19px;height:19px}.layer-thumb img{width:100%;height:100%;object-fit:cover}.layer-name{border:0;background:transparent;min-width:0;width:100%;padding:4px 0;font-size:10px;cursor:pointer;text-overflow:ellipsis}.layer-name:focus{background:var(--surface, #fff);border-radius:3px;cursor:text}.layer-actions{display:flex;gap:1px;align-items:center;margin-left:auto}.layer-action{width:20px;height:25px;padding:0;color:var(--text-muted, #a6ad9b);opacity:0;border-radius:3px}.layer-action:hover{color:var(--text-secondary, #5e6f4e);background:var(--surface-hover, #e5e9db)}.layer-action.persistent,.layer-row:hover .layer-action,.layer-row:focus-within .layer-action,.layer-row.selected .layer-action{opacity:1}.layer-row.selected .layer-action{color:var(--warning, #b39583)}.layers-bottom{height:49px;min-height:49px;display:flex;align-items:center;justify-content:space-between;padding:0 14px;border-top:1px solid var(--line)}.layers-bottom>div{display:flex;gap:4px}.layers-empty{padding:70px 10px;text-align:center;color:var(--text-muted, #a0aa91);font-size:11px}.layers-empty svg{margin-bottom:15px}.layers-empty span{font-size:9px;display:block;margin-top:8px}.adjustment-fieldset{padding:0;margin:0;border:0;min-width:0}.adjustment-fieldset:disabled{opacity:.45}.filter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 8px}.filter-card{padding:0;display:flex;flex-direction:column;gap:7px;font-size:9px;color:var(--text-muted, #8e9781)}.filter-card>div{width:100%;height:60px;border:2px solid transparent;border-radius:6px;overflow:hidden;background:var(--surface-sunken, #e8e6d9)}.filter-card.active>div{border-color:var(--accent);box-shadow:0 0 0 2px #f7dfd3}.filter-card.active>span{color:var(--accent)}.filter-card img{width:100%;height:100%;object-fit:cover}.filter-placeholder{display:block;width:100%;height:100%;background:var(--line, #eadbc4);position:relative}.filter-placeholder i{width:23px;height:23px;background:#e87c4b;border-radius:50%;position:absolute;top:7px;right:9px}.filter-placeholder b{position:absolute;bottom:-15px;left:7px;right:7px;height:40px;background:#5c795b;border-radius:50% 50% 0 0}.adjustment-control{margin:20px 0 8px}.mobile-panel-toggle,.close-mobile-panel{display:none!important}.drop-overlay{position:fixed;top:8px;right:8px;bottom:8px;left:8px;z-index:200;background:var(--surface-overlay, #f7faf0ef);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:2px dashed var(--line, #94a77a);border-radius:15px;display:flex;align-items:center;justify-content:center;text-align:center;pointer-events:none}.drop-overlay svg{color:var(--text-muted, #839964);margin-bottom:20px}.drop-overlay h2{font-size:23px;font-weight:500}.drop-overlay p{margin-top:12px;font-size:13px;color:var(--text-muted, #8d9b7b)}.toast-message{position:fixed;bottom:50px;left:50%;transform:translate(-50%);max-width:min(600px,90vw);z-index:200;background:#354634;color:var(--on-inverse, #fcfff5);border:1px solid var(--line-strong, #647257);box-shadow:0 6px 25px #25371c30;border-radius:9px;padding:13px 16px;display:flex;align-items:center;gap:11px;font-size:12px;line-height:1.5}.toast-message>svg{color:var(--on-inverse, #b3c49d)}.toast-message button{margin-left:8px;color:var(--on-inverse, #c0cbb4);padding:3px}.toast-enter-active,.toast-leave-active{transition:opacity .2s,translate .2s}.toast-enter-from,.toast-leave-to{opacity:0;translate:0 10px}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:var(--backdrop, #222c2440);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:100;padding:24px}.modal{width:470px;max-height:calc(100dvh - 48px);overflow:auto;background:var(--panel);border:1px solid var(--line, #fff);border-radius:16px;padding:30px;position:relative;box-shadow:0 24px 100px #23321e35}.modal-close{position:absolute;right:16px;top:16px}.export-preview{display:flex;gap:15px;align-items:center;background:var(--surface-soft, #f1f2e9);border:1px solid var(--line, #e5e8db);border-radius:8px;padding:12px;margin-bottom:20px}.export-preview img{width:61px;height:58px;object-fit:contain;background:var(--surface-sunken, #e8e9de);border:1px solid var(--line, #dee1d0);border-radius:3px}.export-preview strong{font-size:12px;font-weight:500;display:block;margin-bottom:7px;overflow-wrap:anywhere}.export-preview span{font-size:10px;color:var(--text-muted, #959f86)}.form-label{display:block;font-size:11px;font-weight:500;margin:18px 0 9px}.format-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.format-options button{padding:12px 6px;flex-direction:column;gap:6px;border:1px solid var(--line, #dfe4d5);border-radius:6px;font-size:12px}.format-options button>span{font-size:8px;color:var(--text-muted, #9aa58d)}.format-options button.active{border-color:var(--accent-border, #e49373);background:var(--surface-hover, #fbefe6);color:var(--danger, #d27048)}.format-options button.active>span{color:var(--warning, #c29276)}.checkbox-row{display:flex;align-items:center;gap:8px;font-size:11px;margin:20px 0}.checkbox-row input{width:15px;height:15px}.modal-submit{margin-top:23px;height:42px}.preset-sizes{display:flex;gap:8px}.preset-sizes .button{flex:1}.modal-footer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:26px}.modal-footer>.button{width:100%;min-width:0;white-space:normal}.modal-footer>.button:last-child:nth-child(odd){grid-column:1/-1}@media(max-width:420px){.modal-footer{grid-template-columns:minmax(0,1fr)}}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid var(--line, #e6eade)}.setting-row strong{display:block;font-size:12px;font-weight:500;margin-bottom:6px}.setting-row span{font-size:10px;color:var(--text-muted, #9aa48d);line-height:1.5;display:block}.toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:32px;height:19px;background:var(--surface-sunken, #dfe4d5);border-radius:12px;position:relative;cursor:pointer;flex-shrink:0;transition:.15s}.toggle:before{content:"";position:absolute;left:3px;top:3px;width:13px;height:13px;background:var(--surface, white);border-radius:50%;box-shadow:0 1px 2px #0002;transition:.15s}.toggle:checked{background:#819569}.toggle:checked:before{left:16px}.storage-card{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line, #e3e6d9);border-radius:7px;background:var(--surface-soft, #f3f4eb);padding:15px;margin:22px 0 12px}.storage-card strong{font-size:11px;font-weight:500;display:block;margin-bottom:7px}.storage-card span{font-size:10px;color:var(--text-muted, #9aa68b)}.shortcut-list>div{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line, #e9ecdf);font-size:11px;color:var(--text-muted, #79866b)}.shortcut-list kbd{font-size:10px;background:var(--surface-sunken, #edf0e4);color:var(--text-muted, #7d896e);padding:4px 6px}.modal-help{display:flex;flex-direction:column;overflow:hidden}.modal-help .ui-heading{flex:none}.modal-help .shortcut-list{min-height:0;overflow:auto;margin:0 -30px -30px;padding:0 30px 30px;border-top:1px solid var(--line, #e9ecdf);overscroll-behavior:contain}.about-features{display:flex;justify-content:space-between;gap:10px;margin:25px 0 30px}.about-features span{display:flex;gap:7px;align-items:center;font-size:10px;color:var(--text-muted, #8b997b)}.about-features svg{color:var(--text-muted, #8c9d78)}@keyframes modal-in{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@media(min-width:1650px){.properties-panel{width:250px;min-width:250px}.layers-panel{width:280px;min-width:280px}.property-section{padding:24px}.layer-row{min-height:49px}.workspace{background-size:16px 16px}}@media(max-width:1250px){.properties-panel{width:205px;min-width:205px}.layers-panel{width:225px;min-width:225px}.property-section{padding:18px 15px}.panel-heading{padding:0 15px}.sidebar-tabs{gap:14px;padding:0 12px}.sidebar-tabs>button{font-size:10px;gap:5px}.layer-row{gap:7px;padding:5px 4px}.layer-list{padding:0 6px 10px}.layer-thumb{width:28px;height:28px}.layer-name{font-size:9px}.layer-action{width:17px}.canvas-toolbar{padding:0 14px}.status-bar>span:last-child{display:none}.palette{gap:6px}.palette button{width:15px;height:15px}.quick-add{gap:5px}}@media(max-width:1050px){.properties-panel{width:190px;min-width:190px}.layers-panel{width:205px;min-width:205px}.tool-rail{width:56px;min-width:56px}.tool-button.active:before{left:-7px}.tool-button{width:40px}.sidebar-tabs{gap:10px;padding:0 9px}.sidebar-tabs>button>svg{width:14px}.sidebar-tabs>button>span{display:none}.layer-actions{gap:0}.layer-name{font-size:9px}.layer-thumb{width:25px;height:25px}.layer-action{width:16px}.local-note{padding:12px 8px;font-size:7px}.local-note small{font-size:7px}.view-toggles{gap:3px}.canvas-toolbar{padding:0 10px}.property-section{padding:17px 13px}.palette{gap:5px}.palette button{width:14px;height:14px}.field-grid{gap:5px}}@media(max-width:900px){.layers-panel{position:absolute;right:0;top:var(--topbar-height);bottom:0;width:255px;transform:translate(100%);transition:transform .2s;box-shadow:-10px 0 30px #35482a14;z-index:25}.layers-panel.mobile-open{transform:translate(0)}.mobile-panel-toggle,.close-mobile-panel{display:inline-flex!important}.sidebar-tabs{padding:0 15px;gap:20px}.sidebar-tabs>.close-mobile-panel{margin-left:auto;align-self:center}.sidebar-tabs>button{font-size:11px}.sidebar-tabs>button>span{display:inline}.layer-name{font-size:10px}.layer-thumb{width:31px;height:31px}.layer-row{min-height:47px}.layer-action{width:20px}.tool-tooltip{display:none}.properties-panel{width:210px;min-width:210px}.palette{gap:7px}.palette button{width:15px;height:15px}}@media(max-width:650px){.tool-rail{width:48px;min-width:48px;padding-top:12px}.tool-button{width:36px;height:39px}.tool-button.active:before{left:-6px}.tool-rail-main{gap:5px}.tool-rail-bottom{gap:3px}.properties-panel{width:158px;min-width:158px}.panel-heading{height:48px;min-height:48px;padding:0 11px}.panel-heading h2{font-size:11px}.property-section{padding:15px 10px}.property-section h3{font-size:10px;margin-bottom:12px}.property-section .small{font-size:9px}.canvas-preview-mini{height:78px}.canvas-preview-mini>div{max-height:57px;max-width:83px}.label-value{font-size:8px}.ui-color-plain .ui-color-trigger{font-size:8px;gap:4px}.ui-color-plain .ui-color-chip{width:13px;height:13px}.add-image-card{padding:13px 4px}.add-image-card strong{font-size:10px}.add-image-card small{font-size:8px}.quick-add button{font-size:9px;gap:5px}.quick-add svg{width:13px}.local-note{display:none}.field-grid{gap:4px}.number-field{padding:0 5px;gap:3px;height:30px}.number-field input{font-size:9px}.palette{gap:5px}.palette button{width:12px;height:12px}.ui-color-trigger{padding:0 5px;gap:5px;font-size:8px}.ui-color-chip{width:15px;height:15px}.alignment-buttons .icon-button{width:21px}.alignment-buttons svg{width:14px}.shape-grid{gap:5px}.shape-button{height:36px}.shape-button svg{width:19px}.canvas-toolbar{height:40px;min-height:40px;padding:0 6px}.view-toggles{gap:0}.view-toggles .icon-button{width:24px}.toolbar-divider{margin:0 2px}.canvas-controls{gap:0;padding:3px;bottom:26px;height:33px;border-radius:6px}.canvas-controls .icon-button{width:22px;height:24px}.zoom-value{font-size:9px;min-width:41px}.canvas-controls>span{margin:0 4px}.fit-button{font-size:0;gap:0;padding:0 5px}.fit-button svg{width:13px}.canvas-tip{display:none}.status-bar{font-size:7px;padding:0 6px;height:25px;min-height:25px}.status-middle{display:none!important}.layers-panel{top:var(--topbar-height)}.artboard-label{font-size:8px;top:-20px}.artboard-label>span:last-child{font-size:7px}.modal-backdrop{padding:14px}.modal{padding:25px 20px;max-height:calc(100dvh - 28px)}.modal .small{font-size:10px}.modal .label-value{font-size:11px}.modal .field-grid{gap:9px}.empty-canvas-hint{width:170px;gap:6px}.empty-canvas-actions{gap:5px}.empty-canvas-actions button{padding:8px 4px;font-size:8px;gap:4px}.empty-canvas-actions button svg{width:15px;height:15px}.empty-canvas-hint strong{font-size:11px}.empty-canvas-hint span{font-size:8px;line-height:1.6}.empty-canvas-hint svg{width:23px}.empty-canvas-hint button{font-size:8px;padding:6px}.toast-message{font-size:10px;padding:10px 12px;bottom:25px}.layer-action{opacity:1}.layer-list{padding:0 9px 10px}.layer-row{gap:9px}.text-content,.select-field{font-size:10px}.shortcut-list>div{font-size:10px}.shortcut-list kbd{font-size:8px}.modal-help .shortcut-list{margin:0 -20px -25px;padding:0 20px 25px}}@media(max-width:420px){.properties-panel{width:136px;min-width:136px}.property-section{padding:14px 8px}.view-toggles .icon-button{width:22px}.view-toggles .icon-button svg{width:14px}.canvas-toolbar{padding:0 5px}.canvas-preview-mini{height:70px}.palette{gap:4px}.palette button{width:11px;height:11px}.quick-add button{font-size:8px;gap:3px}.ui-color-compact .ui-color-text{display:none}.label-value,.ui-color-plain .ui-color-trigger{font-size:7px}.alignment-buttons .icon-button{width:18px}.tool-rail{width:44px;min-width:44px}.tool-button{width:34px}.tool-button.active:before{left:-5px}.tool-button svg{width:19px}}.mobile-properties-toggle,.close-mobile-properties{display:none!important}@media(max-width:900px){.layers-panel{visibility:hidden}.layers-panel.mobile-open{visibility:visible}}@media(max-width:650px){.mobile-properties-toggle,.close-mobile-properties{display:inline-flex!important}.properties-panel{display:none;position:absolute;left:48px;right:0;bottom:25px;width:auto;min-width:0;max-height:47dvh;z-index:24;border-top:1px solid var(--line, #d9dfcf);border-radius:12px 12px 0 0;box-shadow:0 -8px 30px #263b1c20}.properties-panel.mobile-properties-open{display:flex}.panel-heading .shortcut-badge{margin-left:auto;margin-right:10px}.properties-scroll{display:block}.properties-panel .property-section{padding:16px}.properties-panel h3,.properties-panel .small{font-size:11px}.properties-panel .label-value{font-size:10px}.properties-panel .palette{gap:9px}.properties-panel .palette button{width:21px;height:21px}.properties-panel .number-field input{font-size:12px}.properties-panel .field-grid{gap:10px}.properties-panel .alignment-buttons .icon-button{width:32px}.properties-panel .ui-color-text{display:inline}.properties-panel .ui-color-trigger{gap:9px;padding:0 10px;font-size:12px}.properties-panel .ui-color-chip{width:20px;height:20px}.view-toggles{gap:4px}.canvas-toolbar{padding:0 12px}.view-toggles .icon-button{width:28px;height:29px}.view-toggles .icon-button svg{width:17px}.canvas-controls{bottom:28px;height:38px;padding:4px 7px;gap:4px}.fit-button{font-size:10px;gap:7px}.zoom-value{font-size:11px;min-width:45px}.status-bar{font-size:8px;padding:0 12px}.artboard-label{font-size:9px}.artboard-label>span:last-child{font-size:8px}}@media(max-width:420px){.properties-panel{left:44px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.app-shell{position:relative}.sidebar-page{display:flex;flex-direction:column;flex:1;min-height:0}.language-setting select{min-width:130px;max-width:155px;flex-shrink:0}.language-setting>div{min-width:0}.setting-row.language-setting{gap:12px}@media(max-width:420px){.language-setting select{min-width:116px;max-width:128px}}.document-status.status-dirty .status-dot{background:var(--accent-soft, #d9a441)}.document-status.status-error .status-dot{background:#d2603f}.document-status.status-local .status-dot{background:var(--line, #b6bda9)}.document-status.status-saving{color:var(--text-secondary, #6f7d63)}.document-status.status-error{color:var(--danger, #b3563a)}.document-status.status-dirty{color:var(--danger, #9a7a34)}.drive-header-save.attention{background:var(--surface-soft, #fbeee6);border-color:var(--accent-border, #eab9a2);color:var(--danger, #a44b2c)}.drive-header-save.attention:hover:not(:disabled){background:var(--surface-hover, #f7e2d5);border-color:var(--accent-border, #e0a58b)}.download-copy{display:inline-flex;align-items:center;gap:6px;color:var(--text-secondary, #6f7d63);text-decoration:underline;margin-top:-8px}.photo-canvas-card,.project-file-card{display:flex;align-items:center;justify-content:flex-start;gap:12px;width:100%;margin-top:20px;padding:13px 14px;border:1px dashed var(--line, #d7dccc);border-radius:9px;background:var(--surface, #f8f9f2);text-align:left;color:var(--ink, #54614b)}.photo-canvas-card:hover,.project-file-card:hover{background:var(--surface-hover, #f0f3e7);border-color:var(--line, #a9b696)}.photo-canvas-icon{width:36px;height:36px;border-radius:9px;background:var(--surface-sunken, #e9eddd);display:grid;place-items:center;color:var(--text-muted, #7f8d68);flex-shrink:0}.photo-canvas-text{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}.photo-canvas-text strong{font-size:11px;font-weight:600}.photo-canvas-text small{font-size:10px;line-height:1.5;color:var(--text-muted, #96a08a)}.photo-canvas-arrow{color:var(--text-muted, #a7b096);flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.spinning{animation:spin 1.3s linear infinite}@media(prefers-reduced-motion:reduce){.spinning{animation:none}}.context-menu{position:fixed;z-index:180;min-width:240px;padding:6px;background:var(--panel);border:1px solid var(--line);box-shadow:0 12px 36px #30382828;border-radius:10px}.context-menu hr{border:0;border-top:1px solid var(--line);margin:5px 4px}.context-menu [role=menuitem]{width:100%;display:flex;align-items:center;gap:9px;justify-content:flex-start;text-align:left;padding:8px 9px 8px 6px;border-radius:6px;font-size:12px;color:inherit;background:transparent;border:0}.context-menu [role=menuitem]:hover:not(:disabled),.context-menu [role=menuitem]:focus-visible{background:var(--surface-hover, #f2f0e9)}.context-menu [role=menuitem]:disabled{opacity:.45;cursor:default}.context-menu .danger{color:var(--danger, #b3563a)}.context-menu kbd{margin-left:auto}.context-menu .menu-icon{width:16px;display:inline-flex;justify-content:center;color:var(--text-muted, #8a9082);flex-shrink:0}.context-menu .danger .menu-icon{color:inherit}.context-menu .menu-label{flex:1;white-space:nowrap}@media(max-width:650px){.context-menu{min-width:210px}.context-menu kbd{display:none}}.inline-text{position:absolute;padding:0;margin:0;border:0;outline:0;background:transparent;resize:none;overflow:hidden;white-space:pre;overflow-wrap:normal;caret-color:#ed6844;z-index:3;cursor:text;display:block;box-sizing:content-box}.inline-text::selection{background:var(--backdrop, #ed684455)}.canvas-object.editing{visibility:hidden}.inline-text:focus,.inline-text:focus-visible{box-shadow:none}.app-loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;background:var(--surface-soft, #f8f9f6);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;color:var(--text-secondary, #6f7d63);font-size:13px;padding:24px;text-align:center}.app-loader-brand{display:flex;align-items:center;gap:10px;animation:loader-breathe 2.4s ease-in-out infinite}.app-loader-brand .brand-mark{width:34px;height:36px}.app-loader-word{font-size:30px;font-weight:700;letter-spacing:-1.5px;line-height:1;color:var(--ink, #3e4d35)}.app-loader-word i{font-style:normal;color:var(--accent, #e96b48)}.app-loader-track{position:relative;width:min(220px,60vw);height:3px;margin:30px 0 20px;border-radius:3px;background:var(--surface-sunken, #e6e9df);overflow:hidden}.app-loader-track i{position:absolute;top:0;bottom:0;width:40%;border-radius:3px;background:var(--accent, #e96b48);animation:loader-slide 1.4s cubic-bezier(.65,.05,.36,1) infinite}.app-loader-text{font-size:13px;color:var(--text-secondary, #6f7d63)}.app-loader-step{font-size:11px;line-height:1.6;margin-top:6px;min-height:18px;color:var(--text-muted, #9aa28d)}@keyframes loader-slide{0%{left:-45%}to{left:105%}}@keyframes loader-breathe{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.72;transform:translateY(-3px)}}@media(prefers-reduced-motion:reduce){.app-loader-brand{animation:none}.app-loader-track i{animation:none;width:100%;opacity:.5}}.canvas-area{position:relative}.save-progress{position:absolute;left:0;right:0;top:0;height:3px;background:var(--surface-sunken, #f1e4d8);z-index:5;overflow:hidden}.save-progress i{display:block;height:100%;background:#e97451;transition:width .25s}.document-status.status-saving{color:var(--ink, #3e5936);font-weight:600}.activity-hub{position:fixed;left:50%;bottom:50px;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;align-items:center;gap:8px;width:min(600px,92vw);pointer-events:none}.activity-hub>*{pointer-events:auto;min-width:min(300px,100%);max-width:100%;box-sizing:border-box}.activity-hub .toast-message{position:static;transform:none;left:auto;bottom:auto;max-width:100%}.toast-text{flex:1;min-width:0}.hub-enter-from,.hub-leave-to{opacity:0;translate:0 10px}.hub-enter-active,.hub-leave-active{transition:opacity .2s,translate .2s}.hub-move{transition:translate .2s}.activity-hub.raised{bottom:132px}.activity-row{display:flex;align-items:center;gap:11px;padding:12px 16px;border:1px solid var(--line-strong, #647257);background:#354634;color:var(--on-inverse, #fcfff5);border-radius:9px;box-shadow:0 8px 24px #25371c30;font-size:12px}.activity-row>svg{color:var(--on-inverse, #e9bd70);flex-shrink:0}.activity-text{display:flex;flex-direction:column;gap:6px;min-width:0}.activity-text span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.activity-bar{display:block;height:3px;width:200px;max-width:100%;background:var(--surface-overlay, #ffffff30);border-radius:2px;overflow:hidden}.activity-bar b{display:block;height:100%;background:var(--accent-soft, #e9bd70);transition:width .2s}.toast-message.toast-error{background:#6f3325;border-color:var(--accent-border, #a35a45)}.toast-message.toast-error>svg{color:var(--on-inverse, #f6c9b6)}.toast-message.toast-success>svg{color:var(--on-inverse, #b3c49d)}.toast-message.toast-info>svg{color:var(--on-inverse, #c9d6bd)}.project-busy{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;background:var(--surface-overlay, #f8f9f6e0);color:var(--ink, #3e5936);font-size:11px;font-weight:600;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:12px;text-align:center}.project-busy>svg{color:var(--danger, #e97451)}.project-busy-bar{display:block;width:60%;height:4px;background:var(--surface-sunken, #dfe5d5);border-radius:2px;overflow:hidden}.project-busy-bar b{display:block;height:100%;background:#e97451;transition:width .2s}.project-status.saving{color:var(--ink, #3e5936);font-weight:600}@media(max-width:650px){.activity-hub{bottom:28px;width:calc(100% - 16px)}.activity-hub.raised{bottom:104px}.activity-row{font-size:10px;padding:8px 10px}.activity-bar{width:140px}}.header-actions{display:flex;gap:8px;align-items:center}.history-actions{display:flex;gap:2px;margin-right:4px}.history-actions .icon-button{width:28px;height:28px}.document-title{display:flex;align-items:center;gap:12px;min-width:0;flex:1}.document-name{display:inline-grid;grid-template-columns:minmax(0,1fr);align-items:center;min-width:70px;max-width:min(340px,100%);margin-left:-7px}.document-name:after{content:attr(data-value) " ";grid-area:1/1;visibility:hidden;white-space:pre;font-size:12px;font-weight:600;padding:3px 7px;border:1px solid transparent}.document-title input{grid-area:1/1;width:100%;min-width:0;font-size:12px;font-weight:600;border:1px solid transparent;background:transparent;border-radius:4px;padding:3px 7px;color:var(--ink, #3e4d35)}.document-title input:hover{border-color:var(--line)}.document-title input:hover,.document-title input:focus{background:var(--surface-hover, #fff)}.document-status{font-size:9px;color:var(--text-muted, #9a9d94);display:flex;align-items:center;gap:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.1px;flex-shrink:0;max-width:50%}.profile-avatar{display:flex;width:28px;height:28px;padding:0;background:var(--surface-sunken, #e9ebdf);color:var(--text-secondary, #6d765e);font-family:Georgia,serif;align-items:center;justify-content:center;border-radius:50%;margin-top:10px;font-size:14px}.profile-avatar:hover{background:var(--surface-hover, #dde3cf)}@media(max-width:720px){.header-actions{gap:3px}.header-actions .button>span{display:none}.history-actions{margin-right:0}.history-actions .icon-button{width:26px}}@media(max-width:650px){.document-title{flex-direction:column;align-items:flex-start;gap:0}.document-name{margin-left:-4px;max-width:100%}.document-name:after{font-size:10px;padding:1px 4px}.document-title input{font-size:10px;padding:1px 4px}.document-status{font-size:7px;max-width:100%}}@media(max-width:420px){.document-status{font-size:6px}.history-actions .icon-button{width:23px}}.project-file-card{margin-top:8px}.layer-parked{display:inline-flex;color:var(--text-muted, #a4ab97);margin-right:2px}.template-options button,.theme-option,.add-image-card,.photo-canvas-card,.project-file-card,.empty-canvas-actions button{transition:transform .18s var(--motion-ease, ease),box-shadow .18s var(--motion-ease, ease),border-color .15s,background .15s}.kind-card:hover,.template-options button:hover,.theme-option:hover,.add-image-card:hover,.photo-canvas-card:hover,.project-file-card:hover,.empty-canvas-actions button:hover{transform:translateY(-2px)}.add-image-card:hover,.photo-canvas-card:hover,.project-file-card:hover,.template-options button:hover,.theme-option:hover,.empty-canvas-actions button:hover{box-shadow:0 6px 16px #34452d0f}.project-card:active,.kind-card:active,.template-options button:active,.theme-option:active,.add-image-card:active,.photo-canvas-card:active,.project-file-card:active,.empty-canvas-actions button:active{transform:translateY(0)}@media(prefers-reduced-motion:reduce){.project-card,.kind-card,.template-options button,.theme-option,.add-image-card,.photo-canvas-card,.project-file-card,.empty-canvas-actions button{transition:none}.project-card:hover,.kind-card:hover,.template-options button:hover,.theme-option:hover,.add-image-card:hover,.photo-canvas-card:hover,.project-file-card:hover,.empty-canvas-actions button:hover{transform:none}}:root{color-scheme:light;--text-muted: #707b69;--text-secondary: #58674f;--surface: #fff;--surface-soft: #f8f9f6;--surface-sunken: #edf0e8;--surface-hover: #e5ebdf;--line-strong: #bac5b0;--accent-border: #e9bca7;--workspace: #eeeee8;--workspace-dot: #cdd0c2;--danger: #a74f38;--warning: #946c26;--on-inverse: #fff;--scroll-thumb: #c7ccbe;--scroll-thumb-hover: #a8b09b;--focus: #e96b48;--focus-halo: #e96b4833}:root[data-theme=dark]{color-scheme:dark;color:#ededf0;background:#18191b;--ink: #ededf0;--muted: #afb1b8;--text-muted: #afb1b8;--text-secondary: #ccced4;--panel: #232427;--surface: #292a2e;--surface-soft: #1d1e21;--surface-sunken: #303136;--surface-hover: #383a40;--line: #404249;--line-strong: #646771;--accent: #f18a65;--accent-soft: #3e2c25;--accent-border: #85513d;--green: #aebed1;--danger: #f3a28a;--warning: #e4be78;--workspace: #151618;--workspace-dot: #35373d;--surface-overlay: #232427ed;--backdrop: #090a0cb3;--scroll-thumb: #4a4d55;--scroll-thumb-hover: #616570;--focus: #f18a65;--focus-halo: #f18a6545}.library{background:var(--surface-soft)}.toggle:before{background:#fff}:root[data-theme=dark] .button.primary{color:#201b16}:root[data-theme=dark] .button.primary:hover:not(:disabled){background:#f69c79;border-color:#f69c79}:root[data-theme=dark] .toggle{background:var(--line-strong)}:root[data-theme=dark] .toggle:checked{background:#9aa7b9}:root[data-theme=dark] .library-loading-track{background:var(--accent-soft)}:root[data-theme=dark] .library-skeleton-preview:after{background:linear-gradient(90deg,transparent,#ffffff0d,transparent)}:root[data-theme=dark] .admin-page{--viz-grid: #404249;--viz-axis: #afb1b8;--viz-muted: #9699a3;--viz-error: #f3a28a}:root[data-theme=dark] .ui-heading-icon{color:var(--accent)}:root[data-theme=dark] .tool-tooltip,:root[data-theme=dark] .toast-message:not(.toast-error),:root[data-theme=dark] .activity-row{background:#303238;border-color:var(--line-strong)}:root[data-theme=dark] .tool-tooltip kbd{background:#454851}:root[data-theme=dark] input[type=range]::-webkit-slider-thumb{background:var(--text-secondary);box-shadow:0 0 0 1px var(--text-secondary)}:root[data-theme=dark] input[type=range]::-moz-range-thumb{background:var(--text-secondary)}.theme-setting{align-items:flex-start}.theme-options{display:flex;gap:10px;flex-shrink:0}.theme-option{display:flex;flex-direction:column;align-items:stretch;gap:9px;padding:7px;width:112px;border:1px solid var(--line);border-radius:10px;background:var(--surface);text-align:left}.theme-option.selected{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.theme-option:hover{background:var(--surface-soft)}.settings-card .theme-option .theme-option-label{display:flex;align-items:center;gap:6px;font-size:11px;line-height:20px;color:var(--ink);white-space:nowrap}.theme-option-label>svg:last-child:not(:first-child){margin-left:auto;color:var(--accent)}.settings-card .theme-preview{position:relative;display:block;height:54px;border-radius:5px;overflow:hidden;background:#f2f4ec;border:1px solid #dce2d5}.theme-preview:before{content:"";position:absolute;left:0;top:0;bottom:0;width:19%;background:#e1e7d9}.theme-preview i,.theme-preview b,.theme-preview em{position:absolute;display:block;border-radius:3px}.theme-preview i{top:10px;left:29%;width:53%;height:5px;background:#aab99d}.theme-preview b{top:22px;left:29%;width:27%;height:23px;background:#fff;border:1px solid #dce2d5}.theme-preview em{top:22px;left:61%;width:22%;height:23px;background:#f1ab88}.settings-card .theme-preview-dark{background:#18191b;border-color:#404249}.theme-preview-dark:before{background:#34363b}.theme-preview-dark i{background:#9197a3}.theme-preview-dark b{background:#3b3e45;border-color:#545863}.theme-preview-dark em{background:#a66a50}@media(max-width:720px){.theme-setting{flex-direction:column;gap:16px!important}.theme-options{width:100%}.theme-option{flex:1;width:auto;padding:9px}.settings-card .theme-preview{height:66px}.theme-preview b,.theme-preview em{height:34px}.settings-card .setting-row.language-setting{flex-wrap:wrap;gap:12px}.settings-card .setting-row.language-setting select{max-width:100%}.settings-card .storage-card{flex-wrap:wrap}}:focus,:focus-visible{outline:0}::-moz-focus-inner{border:0}button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:not([tabindex="-1"]):focus-visible{box-shadow:0 0 0 2px var(--surface, #fff),0 0 0 4px var(--focus)}input[type=checkbox]:focus-visible,input[type=radio]:focus-visible,input[type=range]:focus-visible{box-shadow:0 0 0 2px var(--surface, #fff),0 0 0 4px var(--focus)}[role=menuitem]:focus-visible,[role=option]:focus-visible,.ui-select-list button:focus-visible,.account-menu button:focus-visible,.topbar-brand:focus-visible{box-shadow:none}:where(select,textarea,input:not([type=checkbox],[type=radio],[type=range],[type=file],[type=hidden],[type=submit],[type=button])):focus,:where(.number-field,.ui-color-hex,.library-search):focus-within,.ui-select-trigger:focus-visible,.ui-color-trigger:focus-visible,.document-title input:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-halo)}:where(.number-field,.ui-color-hex,.library-search) input:focus{border-color:transparent;box-shadow:none}.layer-name:focus{box-shadow:0 0 0 2px var(--focus-halo),0 0 0 1px var(--focus)}.mobile-tool-label{display:none}:root{--mobile-dock-height: calc(72px + env(safe-area-inset-bottom, 0px)) }@media(max-width:720px){.app-shell{min-height:0}.library .library-layout{flex-direction:column}.library .library-sidebar{order:2;width:100%;height:var(--mobile-dock-height);min-height:var(--mobile-dock-height);padding:6px max(10px,env(safe-area-inset-right)) calc(6px + env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));border-right:0;border-top:1px solid var(--line);background:var(--panel);flex-direction:row;align-items:center;gap:6px;z-index:30}.library .library-sidebar nav{display:flex;flex-direction:row;flex:1;min-width:0;gap:4px}.library .library-nav{display:flex;flex:1;min-width:0;min-height:56px;padding:6px 2px;margin:0;flex-direction:column;gap:4px;border-radius:10px}.library .library-nav>span{display:block;max-width:100%;font-size:10px;line-height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library .library-nav svg{width:21px;height:21px}.library .library-nav.active{box-shadow:inset 0 2px var(--green)}.library .library-content{padding:24px 18px 28px;scroll-padding-bottom:24px;overscroll-behavior:contain}.library .library-heading{gap:20px}.library .library-heading-actions{display:grid;grid-template-columns:44px minmax(0,1fr) minmax(0,1fr);gap:8px}.library-heading-actions .button{white-space:normal}.library-heading-actions .library-create{grid-column:1/-1;grid-row:1;font-size:12px}.library .library-toolbar{gap:10px;margin:22px 0}.library .library-search{max-width:none;height:44px;flex-basis:100%}.library .library-sort{width:100%}.library-sort .ui-select-trigger{height:44px;font-size:12px}.library-search input{font-size:14px}.library .library-banner{flex-wrap:wrap}.library .library-banner>span{flex-basis:calc(100% - 40px)}.library-page .setting-row{gap:14px}.library-page .setting-row>.button{white-space:normal}.editor-body{flex-direction:column;position:relative;padding-bottom:var(--mobile-dock-height)}.tool-rail{position:absolute;left:0;right:0;bottom:0;width:100%;min-width:0;height:var(--mobile-dock-height);padding:6px 8px calc(6px + env(safe-area-inset-bottom));flex-direction:row;border-right:0;border-top:1px solid var(--line);gap:4px;z-index:30}.tool-rail-main{flex-direction:row;flex:1;min-width:0;gap:2px;overflow-x:auto;scrollbar-width:thin;overscroll-behavior-x:contain;scroll-snap-type:x proximity}.tool-rail .tool-button{flex:0 0 48px;width:48px;height:56px;flex-direction:column;gap:4px;scroll-snap-align:start}.mobile-tool-label{display:block;font-size:9px;line-height:12px;max-width:46px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tool-button.active:before{left:12px;top:0;width:24px;height:2px;border-radius:0 0 2px 2px}.tool-rail .rail-separator{height:26px;width:1px;min-width:1px;margin:0 5px}.canvas-area{min-height:0;width:100%}.tool-tooltip{display:none}.properties-panel{display:none;position:absolute;left:0;right:0;bottom:var(--mobile-dock-height);width:auto;min-width:0;max-height:55%;z-index:24;border:1px solid var(--line);border-radius:16px 16px 0 0;box-shadow:0 -8px 30px #101a1820}.properties-panel.mobile-properties-open{display:flex}.layers-panel{position:absolute;left:0;right:0;top:auto;bottom:var(--mobile-dock-height);width:100%;min-width:0;height:55%;border:1px solid var(--line);border-radius:16px 16px 0 0;transform:translateY(30px);visibility:hidden;opacity:0;transition:transform .2s,opacity .2s;z-index:25}.layers-panel.mobile-open{transform:none;visibility:visible;opacity:1}.mobile-properties-toggle,.close-mobile-properties,.mobile-panel-toggle,.close-mobile-panel{display:inline-flex!important}.canvas-toolbar{height:52px;min-height:52px;padding:0 10px;gap:4px}.view-toggles{gap:0}.view-toggles .icon-button{height:40px;width:32px}.canvas-controls{bottom:18px;height:44px}.canvas-controls .icon-button{width:32px;height:36px}.canvas-tip,.status-bar{display:none}.activity-hub,.activity-hub.raised{bottom:calc(var(--mobile-dock-height) + 12px)}.library-content input,.library-content select,.modal input,.modal select,.text-content{font-size:16px}.library-welcome{padding:8px 0}}@media(max-width:360px){.library .library-content{padding:20px 12px}.tool-rail .tool-button{flex-basis:46px;width:46px}.view-toggles .icon-button{width:28px}}:root{--control-height: 36px;--control-font-size: 13px;--topbar-height: 50px}.app-shell .button,.skill-guide .button{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;box-sizing:border-box;height:var(--control-height);min-height:var(--control-height);padding:0 14px;gap:8px;font-size:var(--control-font-size);font-weight:500;line-height:1.25;text-align:center}.app-shell .button>svg,.skill-guide .button>svg{display:block;width:16px;height:16px;flex-shrink:0}.app-shell .button>span,.skill-guide .button>span{font-size:inherit;font-weight:inherit;line-height:inherit}.library-heading-actions{align-items:center;flex-wrap:wrap}.library-heading-actions>.button:first-child{width:var(--control-height);padding:0;flex-shrink:0}.header-actions{gap:8px}.header-actions .history-actions{gap:4px}.header-actions .history-actions .icon-button{height:var(--control-height);width:32px}.library-heading-actions .button{white-space:nowrap}.app-shell .ui-select-trigger{height:var(--control-height);min-height:var(--control-height);font-size:var(--control-font-size);font-weight:400;line-height:1.3;padding:0 12px}.ui-select-list button,.app-shell .account-menu button,.app-shell .context-menu [role=menuitem]{min-height:var(--control-height);font-size:var(--control-font-size);line-height:1.4;align-items:center}.ui-select-list button{padding:9px 12px}.ui-segmented{display:flex;gap:4px;padding:4px;background:var(--surface-sunken, #e8ecdf);border-radius:10px}.ui-segmented button{padding:8px 14px;border-radius:7px;font-size:12px;color:var(--text-secondary, #5f6b58);background:transparent;border:0;white-space:nowrap}.ui-segmented button.active{background:var(--surface-hover, #fff);color:var(--ink, #303b33);font-weight:600;box-shadow:0 1px 2px #1a291b14}.ui-segmented-small button{padding:7px 12px;font-size:11px}.context-menu{max-height:calc(100dvh - 16px);max-width:calc(100vw - 16px);overflow-y:auto;overscroll-behavior:contain}.language-select{width:170px;max-width:100%;flex-shrink:0}.admin-sort .ui-select{min-width:180px}@media(max-width:720px){.app-shell .header-actions .button{width:var(--control-height);padding:0;gap:0}.header-actions{gap:4px}.topbar-actions{padding-left:2px}.library .library-heading-actions{display:flex;flex-wrap:wrap;gap:8px}.library .library-heading-actions>.button:first-child{order:0;flex:0 0 var(--control-height)}.library .library-heading-actions>.library-create{order:1;flex:1 0 calc(100% - 52px)}.library .library-heading-actions>.button:nth-child(2),.library .library-heading-actions>.button:nth-child(3){order:2;flex:1 0 calc(50% - 4px);min-width:0}.app-shell .library-heading-actions .button{white-space:normal;padding:0 10px;gap:6px}.app-shell .modal-footer>.button{padding:0 10px}.settings-card .setting-row{flex-wrap:wrap}.language-select{width:100%}}:root{--kind-drawing: #e96b48;--kind-drawing-soft: #fdeee7;--kind-drawing-ink: #a8482c;--kind-diagram: #3b6fd6;--kind-diagram-soft: #e7eefb;--kind-diagram-ink: #2b52a3;--port: #3b6fd6;--port-fill: #fff}[data-theme=dark]{--kind-drawing: #f18a65;--kind-drawing-soft: #3e2c25;--kind-drawing-ink: #f5b199;--kind-diagram: #6f98ea;--kind-diagram-soft: #22304d;--kind-diagram-ink: #a9c2f5;--port: #6f98ea;--port-fill: #1d2230}.kind-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 7px;border-radius:999px;font-size:9px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;white-space:nowrap;line-height:1.2;flex-shrink:0}.kind-chip.kind-drawing{background:var(--kind-drawing-soft);color:var(--kind-drawing-ink)}.kind-chip.kind-diagram{background:var(--kind-diagram-soft);color:var(--kind-diagram-ink)}.document-title .kind-chip{margin-left:-4px}.details .kind-chip,.log-text .kind-chip{margin-left:8px;vertical-align:middle}.document-tab.kind-diagram>[role=tab] svg{color:var(--kind-diagram)}.document-tab.kind-drawing>[role=tab] svg{color:var(--kind-drawing)}.document-tab.selected.kind-diagram{box-shadow:inset 0 2px var(--kind-diagram)}.document-tab.selected.kind-drawing{box-shadow:inset 0 2px var(--kind-drawing)}.kind-filter{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line, #dfe3d6);border-radius:9px;background:var(--surface, #fbfbf6);margin-left:auto}.kind-filter button{padding:6px 10px;border-radius:6px;font-size:11px;color:var(--text-secondary, #6d786a);gap:6px}.kind-filter button small{font-size:10px;color:var(--text-muted, #9aa294);font-variant-numeric:tabular-nums}.kind-filter button:hover{background:var(--surface-hover, #f0f2ea)}.kind-filter button.active{background:var(--surface-hover, #e9ede1);color:var(--ink, #3f4a37);font-weight:600}.kind-filter button.active.kind-diagram{color:var(--kind-diagram-ink);background:var(--kind-diagram-soft)}.kind-filter button.active.kind-drawing{color:var(--kind-drawing-ink);background:var(--kind-drawing-soft)}.project-preview .project-kind{position:absolute;left:10px;bottom:10px}.project-card.kind-diagram .project-preview{background:var(--kind-diagram-soft);background-image:radial-gradient(#3b6fd633 .8px,transparent .8px);background-size:12px 12px}.project-card.kind-diagram .project-placeholder{color:var(--kind-diagram)}.project-card.kind-diagram{border-top:2px solid var(--kind-diagram)}.project-card.kind-drawing{border-top:2px solid var(--kind-drawing)}.library-toolbar .library-sort{margin-left:0}.kind-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.kind-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:18px 16px 16px;border:1px solid var(--line, #dfe3d6);border-radius:12px;background:var(--surface, #fbfbf6);text-align:left;transition:border-color .15s,background .15s,box-shadow .18s var(--motion-ease, ease),transform .18s var(--motion-ease, ease)}.kind-card strong{font-size:14px;color:var(--ink, #3a4433)}.kind-card small{font-size:11px;line-height:1.5;color:var(--text-secondary, #6d786a)}.kind-card-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:11px;margin-bottom:6px}.kind-card.kind-drawing .kind-card-icon{background:var(--kind-drawing-soft);color:var(--kind-drawing)}.kind-card.kind-diagram .kind-card-icon{background:var(--kind-diagram-soft);color:var(--kind-diagram)}.kind-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.kind-card-tags span{font-size:9px;padding:3px 7px;border-radius:999px;background:var(--surface-hover, #eef0e7);color:var(--text-muted, #7f8878)}.kind-card:hover{background:var(--surface-hover, #f4f5ef)}.kind-card.kind-drawing:hover{border-color:var(--kind-drawing);box-shadow:0 0 0 3px var(--kind-drawing-soft)}.kind-card.kind-diagram:hover{border-color:var(--kind-diagram);box-shadow:0 0 0 3px var(--kind-diagram-soft)}.dialog-back{margin:-6px 0 8px -6px;color:var(--text-muted, #8a927f)}.template-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.template-options button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 13px;border:1px solid var(--line, #dfe3d6);border-radius:9px;background:var(--surface, #fbfbf6);text-align:left}.template-options button strong{font-size:12px;color:var(--ink, #3a4433)}.template-options button span{font-size:10px;line-height:1.45;color:var(--text-secondary, #6d786a)}.template-options button.active{border-color:var(--kind-diagram);background:var(--kind-diagram-soft)}.panel-heading-icon{color:var(--kind-diagram)}.property-section.shape-library-top{position:sticky;top:0;z-index:3;background:var(--panel, var(--surface));padding:14px 16px 12px}.shape-search{width:100%;max-width:none;padding:0 10px;border:1px solid var(--line, #e1e4d9);border-radius:7px;background:var(--surface, #fafbf6);display:flex;align-items:center;gap:7px;height:32px;color:var(--text-muted, #8a927f)}.shape-search input{flex:1;border:0;background:transparent;font-size:11px;color:var(--ink, #3a4433);min-width:0}.shape-library-hint{margin:10px 2px 0;line-height:1.5}.shape-group h3{display:flex;align-items:center;justify-content:space-between}.shape-group-toggle{display:inline-flex;align-items:center;gap:4px;padding:0;margin:0 0 0 -3px;border:0;background:none;font:inherit;color:inherit;cursor:pointer;text-transform:inherit;letter-spacing:inherit;min-width:0}.shape-group-toggle span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.shape-group-toggle:focus-visible{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--kind-diagram);border-radius:3px}.shape-group-chevron{flex-shrink:0;transition:transform .15s;color:var(--text-muted, #8a927f)}.shape-group-chevron.open{transform:rotate(90deg)}.shape-group h3:has(.shape-group-toggle[aria-expanded=false]){margin-bottom:0}@media(prefers-reduced-motion:reduce){.shape-group-chevron{transition:none}}.port-picker{position:relative;box-sizing:border-box;width:100%;max-width:96px;aspect-ratio:8/5;margin:10px 8px 4px;border:1.5px solid var(--line, #c9cfbf);border-radius:4px;background:var(--surface, #fafbf6)}.port-picker.disabled{opacity:.45}.port-pick{position:absolute;z-index:1;width:11px;height:11px;padding:0;margin:-5.5px 0 0 -5.5px;border:1.5px solid var(--port);border-radius:50%;background:var(--port-fill);cursor:pointer;box-sizing:border-box}.port-pick.minor{width:8px;height:8px;margin:-4px 0 0 -4px}.port-pick:hover:not(:disabled){background:var(--kind-diagram-soft)}.port-pick.auto{border-style:dashed}.port-pick.chosen{background:var(--port);box-shadow:0 0 0 2px var(--kind-diagram-soft)}.port-pick:disabled{cursor:default}.port-pick:not(:disabled):active{transform:none}.port-pick:focus-visible{box-shadow:0 0 0 2px var(--surface),0 0 0 4px var(--kind-diagram)}.route-hint{margin:8px 0 0;line-height:1.5}.shape-palette{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.shape-tile{min-width:0;display:flex;flex-direction:column;align-items:center;gap:4px;padding:7px 4px 6px;border:1px solid transparent;border-radius:8px;background:var(--surface, #fafbf6);color:var(--text-secondary, #6d786a);cursor:grab;transition:border-color .15s,background .15s}.shape-tile:hover{border-color:var(--kind-diagram);background:var(--kind-diagram-soft);color:var(--kind-diagram-ink)}.shape-tile:active{cursor:grabbing}.shape-tile-art{display:block;width:44px;height:30px}.shape-tile-art svg{width:100%;height:100%;display:block}.shape-tile-label{font-size:9px;line-height:1.2;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.layer-thumb.shape-thumb{color:var(--kind-diagram)}.layer-thumb .layer-shape{display:block;width:26px;height:20px}.layer-thumb .layer-shape svg{width:100%;height:100%;display:block}.workspace.tool-connect{cursor:crosshair}.canvas-object.is-node{cursor:move}.canvas-object.is-connector{cursor:pointer}.canvas-object.editing-node text{visibility:hidden}.canvas-object.editing-connector text,.canvas-object.editing-connector rect{visibility:hidden}.inline-text.inline-connector{box-sizing:border-box;outline:1px dashed var(--port);outline-offset:0;overflow:hidden}.port-handle{fill:var(--port-fill);stroke:var(--port);pointer-events:all;cursor:crosshair;transition:fill .1s}.port-handle.minor{opacity:.75}.port-handle:hover{fill:var(--port);opacity:1}.connect-preview,.connect-target{stroke:var(--port);pointer-events:none}.selection-handle.connector-end{cursor:move}.selection-handle.connector-end.attached{fill:var(--port)}.segment-handle{fill:var(--port-fill);stroke:var(--port);opacity:.8;cursor:move}.segment-handle.horizontal{cursor:ns-resize}.segment-handle.vertical{cursor:ew-resize}.segment-handle:hover{opacity:1;fill:var(--port)}.waypoint-handle{fill:var(--port);stroke:var(--port-fill);cursor:move}.waypoint-handle:hover{fill:var(--kind-diagram-ink)}.quick-add{cursor:pointer;pointer-events:all;opacity:.85}.quick-add:hover{opacity:1}.quick-add-bg{fill:var(--port-fill);stroke:var(--port)}.quick-add-arrow{stroke:var(--port)}.quick-add:hover .quick-add-bg{fill:var(--port)}.quick-add:hover .quick-add-arrow{stroke:#fff}.inline-text.inline-node{white-space:pre-wrap;overflow-wrap:break-word;text-align:center;display:flex;align-items:center;box-sizing:border-box}.empty-canvas-actions .empty-shape{display:block;width:36px;height:24px}.empty-canvas-actions .empty-shape svg{width:100%;height:100%;display:block}.format-scroll{flex:1;overflow:auto;min-height:0}.style-presets{display:flex;flex-wrap:wrap;gap:6px}.style-chip{width:24px;height:24px;border-radius:6px;border:2px solid;padding:0;transition:transform .1s}.style-chip:hover{transform:scale(1.1)}.style-chip.chosen{box-shadow:0 0 0 2px var(--surface, #fff),0 0 0 4px var(--kind-diagram)}.route-options{display:flex;gap:6px}.route-options .button{flex:1;padding:7px 0}.form-label.compact{margin:0 0 6px;font-size:10px;color:var(--text-muted, #8a927f)}.no-fill{margin-top:8px}@media(max-width:900px){.kind-cards{grid-template-columns:1fr}.kind-filter{margin-left:0;width:100%;justify-content:stretch}.kind-filter button{flex:1;justify-content:center}.shape-palette{grid-template-columns:repeat(4,1fr)}}.shape-visualization{display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;background:var(--surface);border:1px solid var(--line);border-radius:9px}.shape-visualization button{display:flex;align-items:center;justify-content:center;gap:5px;min-height:34px;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);font:inherit;font-size:11px;cursor:pointer}.shape-visualization button[aria-pressed=true]{background:var(--kind-diagram-soft);color:var(--kind-diagram-ink);box-shadow:0 1px 3px #0000000d}.shape-visualization button:focus-visible{outline:2px solid var(--kind-diagram);outline-offset:1px}.shape-visualization-hint{margin:8px 0 12px;line-height:1.4}.shape-tile{padding:9px 3px 7px;gap:6px}.shape-tile-art{width:48px;height:42px}.shape-tile-label{font-size:10px}
