:root{--bg: #f6f7f9;--panel: #fff;--text: #1d2330;--muted: #6b7280;--line: #e5e7eb;--accent: #2563eb;--good: #15803d;--warn: #b45309;--bad: #b91c1c;--track: #eef0f3;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #111418;--panel: #1a1e24;--text: #e6e8eb;--muted: #9aa3ae;--line: #2a3038;--accent: #60a5fa;--good: #4ade80;--warn: #fbbf24;--bad: #f87171;--track: #262b33;color-scheme:dark}}:root[data-theme=dark]{--bg: #111418;--panel: #1a1e24;--text: #e6e8eb;--muted: #9aa3ae;--line: #2a3038;--accent: #60a5fa;--good: #4ade80;--warn: #fbbf24;--bad: #f87171;--track: #262b33;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 system-ui,Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}header{display:flex;gap:12px;align-items:center;padding:10px 20px;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;min-height:56px}h1{font-size:18px;margin:0;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}h2{font-size:17px;margin:16px 0 8px}h3{font-size:15px;margin:20px 0 8px}button.icon{border:0;background:none;color:var(--text);font-size:20px;line-height:1;width:40px;height:40px;border-radius:8px;cursor:pointer;padding:0;flex:none}button.icon:hover{background:var(--track)}.asof{color:var(--muted);font-size:13px;white-space:nowrap}main{padding:16px 20px 96px;max-width:1400px;margin:0 auto}main.wide{max-width:none}.drawer{position:fixed;inset:0 auto 0 0;width:272px;max-width:85vw;background:var(--panel);border-right:1px solid var(--line);z-index:21;transform:translate(-100%);transition:transform .2s ease;display:flex;flex-direction:column;visibility:hidden}.drawer.open{transform:none;visibility:visible}.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:8px 8px 8px 20px;min-height:56px;border-bottom:1px solid var(--line)}.drawer nav{display:flex;flex-direction:column;padding:8px;gap:2px;flex:1;overflow-y:auto}.drawer nav button{display:flex;align-items:center;gap:12px;text-align:left;border:0;background:none;color:var(--text);padding:12px;border-radius:8px;cursor:pointer;font:inherit}.drawer nav button:hover{background:var(--track)}.drawer nav button.on{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:600}.nav-icon{width:20px;text-align:center}.drawer-foot{display:flex;align-items:center;gap:10px;padding:14px 20px;border-top:1px solid var(--line)}.drawer-foot .link{margin-left:auto}.drawer-foot .who{display:flex;flex-direction:column;line-height:1.3}.drawer-foot .who .muted{font-size:12px}.nav-group{padding:14px 12px 4px;font-size:12px;color:var(--muted)}.overlay{position:fixed;inset:0;background:#0006;z-index:30;display:flex;align-items:center;justify-content:center}.overlay.drawer-bg{z-index:20}.toolbar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;align-items:center}.toolbar input[type=search]{flex:1;min-width:160px}.toolbar .primary{margin-left:auto}button.primary{background:var(--accent);color:#fff;border:0;padding:8px 14px;border-radius:6px;cursor:pointer;font-weight:600}.col-tabs{display:none}.board{display:grid;grid-template-columns:repeat(4,minmax(240px,1fr));gap:12px;align-items:start}.column{background:var(--track);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:240px;border:2px solid transparent;transition:border-color .15s}.column.over{border-color:var(--accent)}.column h3{margin:2px 4px 4px;font-size:13px;color:var(--muted);font-weight:600;letter-spacing:.02em}.count{display:inline-block;min-width:20px;padding:0 6px;margin-left:6px;border-radius:10px;background:var(--line);color:var(--text);font-size:12px;text-align:center;font-weight:500}.card{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:8px;padding:10px 12px;cursor:grab;font:inherit;color:var(--text);box-shadow:0 1px 2px #0000000f}.card:hover{box-shadow:0 3px 10px #0000001f}.card:active{cursor:grabbing}.card.pri-high{border-left-color:var(--bad)}.card.pri-medium{border-left-color:var(--warn)}.card.pri-low{border-left-color:var(--good)}.card-top,.card-foot{display:flex;align-items:center;gap:8px;font-size:12px}.card-foot{margin-top:8px}.card-foot .avatar{margin-left:auto}.card-title{margin:6px 0 4px;font-weight:500;line-height:1.4}.tag{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);border-radius:4px;padding:0 6px;font-weight:600}.pri{margin-left:auto;font-size:11px}.pri.high{color:var(--bad)}.pri.medium{color:var(--warn)}.pri.low{color:var(--good)}.avatar{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;flex:none}.empty{color:var(--muted);font-size:12px;text-align:center;padding:16px 0}.card .cover{display:block;width:calc(100% + 24px);margin:-10px -12px 8px;height:120px;object-fit:cover;border-radius:6px 6px 0 0;background:var(--track)}.chip{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px;white-space:nowrap}.chip.ok{color:var(--good);border-color:var(--good)}.section{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--line);padding-top:12px}.section-head{display:flex;justify-content:space-between;align-items:baseline}.checklist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}.checklist li{display:flex;align-items:center;gap:6px;padding:2px 0;border-radius:6px}.checklist li:hover{background:var(--track)}.checklist input[type=checkbox]{width:18px;height:18px;flex:none;accent-color:var(--accent)}.checklist .ck-text{flex:1;min-width:0;border-color:transparent;background:transparent}.checklist .ck-text:focus{border-color:var(--line);background:var(--panel)}.checklist li.done .ck-text{text-decoration:line-through;color:var(--muted)}.grip{cursor:grab;color:var(--muted);font-size:12px;letter-spacing:-2px;user-select:none}.ck-move{display:none}button.icon.sm{width:28px;height:28px;font-size:13px;color:var(--muted)}.ck-add{display:flex;gap:6px}.ck-add input{flex:1;min-width:0}.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}.thumb{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;background:var(--track)}.thumb>button:first-child{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb-x{position:absolute;top:4px;right:4px;width:22px;height:22px;padding:0;border-radius:50%;border:0;background:#0000008c;color:#fff;font-size:11px;cursor:pointer}.thumb.add{border:1px dashed var(--muted);color:var(--muted);cursor:pointer;display:flex;align-items:center;justify-content:center}.lightbox{position:fixed;inset:0;z-index:40;background:#000000e0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:16px;cursor:zoom-out}.lightbox img{max-width:100%;max-height:85vh;object-fit:contain;border-radius:6px}.lb-cap{color:#ddd;font-size:13px}.sheet{background:var(--panel);border-radius:12px;width:min(520px,calc(100vw - 32px));max-height:90vh;overflow-y:auto;padding:16px 20px 20px;display:flex;flex-direction:column;gap:12px}.sheet label{display:flex;flex-direction:column;gap:4px;font-size:12px;color:var(--muted);flex:1}.sheet textarea{font:inherit;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text);resize:vertical}.sheet>*{flex-shrink:0}.sheet-head{display:flex;align-items:center;justify-content:space-between}.row2{display:flex;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px}.grid3 input{width:100%;min-width:0;box-sizing:border-box}.grid3 label{font-size:12px;color:var(--muted)}.tpl{border:0;padding:0;margin:0;display:grid;gap:8px}.tpl legend{font-size:12px;color:var(--muted);margin-bottom:4px}.tpl label{flex-direction:row;align-items:flex-start;gap:10px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;cursor:pointer;color:var(--text);font-size:14px}.tpl label.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.tpl label>span{display:flex;flex-direction:column;gap:2px}.tpl input{margin-top:3px}.fields2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fields2 input{width:100%}fieldset.items{border:1px solid var(--line);border-radius:8px;padding:6px 12px 10px;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:0 12px}.recipe-row{display:grid;grid-template-columns:minmax(0,1fr) 84px minmax(0,6em) 64px 28px;gap:8px;align-items:center;margin-bottom:6px}.recipe-row input,.recipe-row select{width:100%;min-width:0}.recipe-row .unit{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:600px){.recipe-row{grid-template-columns:96px minmax(0,1fr) 56px 28px;padding-bottom:8px;border-bottom:1px dashed var(--line)}.recipe-row select{grid-column:1 / -1}}.recipe-sum{display:flex;flex-wrap:wrap;gap:16px;padding:8px 0;border-top:1px solid var(--line);margin-top:6px}.seg.chips{display:flex;flex-wrap:wrap;gap:6px;flex:1;border:0;overflow:visible}.seg.chips button{flex:none;border-radius:16px;padding:6px 14px;border:1px solid var(--line);background:var(--panel);color:var(--text)}.seg.chips button.on{background:var(--accent);border-color:var(--accent);color:#fff}fieldset.items legend{font-size:12px;color:var(--muted);padding:0 4px}fieldset.items label.check{margin:4px 0}.page-actions{display:flex;justify-content:flex-end;margin-bottom:12px}h2 .link{font-size:13px;margin-left:8px}.seg{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:8px;overflow:hidden}.seg button{border:0;border-radius:0;padding:8px 4px;cursor:pointer}.seg button+button{border-left:1px solid var(--line)}.seg button.on{background:var(--accent);color:#fff}.seg3{grid-template-columns:repeat(3,1fr)}.seg7{grid-template-columns:repeat(7,1fr)}.tag.routine{background:var(--track);color:var(--muted)}.drawer-theme{padding:12px 16px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.chip.routine{color:var(--accent);border-color:var(--accent)}.sheet label.check{flex-direction:row;align-items:center;gap:8px;font-size:13px;color:var(--text)}tr.inactive td{opacity:.55}label.check{display:flex;align-items:center;gap:8px;font-size:14px;margin:8px 0}button.link.bad{color:var(--bad)}td.actions{white-space:nowrap;text-align:right}input.name-edit{border:1px solid transparent;background:none;color:var(--text);font:inherit;font-weight:600;padding:4px 6px;border-radius:6px;width:8em;max-width:100%}input.name-edit:hover,input.name-edit:focus{border-color:var(--line);background:var(--panel)}.pending{border:1px solid var(--warn);border-radius:10px;padding:4px 14px 10px;margin-bottom:16px}.pending-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-top:1px solid var(--line)}.pending-row .actions{display:flex;gap:8px}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:16px}.stat{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:12px 14px}.stat .label{color:var(--muted);font-size:12px}.stat .value{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums}.stat .sub{color:var(--muted);font-size:12px}.stat.warn .value{color:var(--warn)}.stat.bad .value{color:var(--bad)}.stat.good .value{color:var(--good)}.tw{background:var(--panel);border:1px solid var(--line);border-radius:8px;overflow-x:auto}table{width:100%;border-collapse:collapse}tbody tr:last-child td{border-bottom:0}th,td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}th{font-size:12px;color:var(--muted);font-weight:500}.n{text-align:right;font-variant-numeric:tabular-nums}tr.click{cursor:pointer}tr.click:hover{background:var(--track)}tr.total td{font-weight:600}tr.lowstock td{background:color-mix(in srgb,var(--warn) 10%,transparent)}.muted{color:var(--muted);font-size:12px}.good{color:var(--good)}.warn{color:var(--warn)}.bad{color:var(--bad)}.bar{position:relative;height:8px;background:var(--track);border-radius:4px;margin:4px 0}.bar .fill{height:100%;background:var(--accent);border-radius:4px}.bar .fill.warn{background:var(--warn)}.bar .marker{position:absolute;top:-3px;width:2px;height:14px;background:var(--text)}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(420px,1fr));gap:20px}.form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:10px}.form label{display:flex;flex-direction:column;font-size:12px;color:var(--muted)}input,select,button{font:inherit;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--text)}.form button{background:var(--accent);color:#fff;border:0;cursor:pointer}button.link{border:0;background:none;color:var(--accent);cursor:pointer;padding:0 4px}input.small{width:84px}.badge{margin-left:6px;font-size:11px;color:var(--warn);border:1px solid var(--warn);border-radius:4px;padding:0 4px}.err{color:var(--bad)}@media(min-width:768px)and (max-width:1100px){.board{grid-template-columns:repeat(4,minmax(170px,1fr));gap:8px}.column{padding:8px}}@media(max-width:767px){.col-tabs{display:grid;grid-template-columns:repeat(4,1fr);position:sticky;top:56px;z-index:5;background:var(--bg);margin:0 -16px 10px;padding:6px 16px;border-bottom:1px solid var(--line)}.col-tabs button{border:0;background:none;padding:8px 2px;font:inherit;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer;white-space:nowrap}.col-tabs button.on{color:var(--accent);border-bottom-color:var(--accent);font-weight:600}.col-tabs .count{margin-left:4px}.board{display:block}.column{display:none;background:none;padding:0;min-height:0}.column.active{display:flex}.column h3{display:none}.card{padding:12px 14px;cursor:pointer}.card .cover{width:calc(100% + 28px);margin:-12px -14px 10px;height:140px}.grip{display:none}.ck-move{display:flex}}@media(max-width:600px){.grid2{grid-template-columns:1fr}header{padding:8px 8px 8px 4px}main{padding:12px 16px 96px}h1{font-size:17px}.asof input{width:148px;padding:5px 6px}.toolbar select{flex:1 1 40%}.toolbar input[type=search]{flex:1 1 0;min-width:0;order:3}.toolbar .primary{flex:none;order:4;margin:0}input,select,textarea{font-size:16px}.overlay:not(.drawer-bg){align-items:flex-end}.sheet{width:100vw;max-height:92vh;border-radius:16px 16px 0 0;padding-bottom:max(20px,env(safe-area-inset-bottom))}.row2{flex-direction:column;gap:12px}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}.page-actions .primary{width:100%}.stats{grid-template-columns:repeat(2,1fr)}.stat .value{font-size:17px}.chat-toggle{padding:12px 16px}table.stack thead{display:none}table.stack,table.stack tbody,table.stack tr,table.stack td{display:block;width:100%}table.stack tr{padding:10px 14px;border-bottom:1px solid var(--line)}table.stack td{border:0;padding:3px 0;display:flex;justify-content:space-between;align-items:center;gap:12px;white-space:normal;min-width:0!important;text-align:right}table.stack td:first-child{display:block;text-align:left;padding-bottom:6px}table.stack td[data-label]:before{content:attr(data-label);color:var(--muted);font-size:12px;flex:none}table.stack td .bar{flex:1;margin:0}}.login{max-width:340px;margin:12vh auto;padding:32px 24px;background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;gap:12px;text-align:center}.login form{display:flex;flex-direction:column;gap:8px}.sso{width:100%;padding:10px;border-radius:8px;cursor:pointer;font-weight:600}.sso.line{background:#06c755;color:#fff;border:0}.sso.google{background:#fff;color:#1f1f1f;border:1px solid #dadce0}.sso.apple{background:#000;color:#fff;border:0}.user{display:flex;gap:8px;align-items:center;color:var(--muted);font-size:13px}.chat-toggle{position:fixed;z-index:24;right:20px;bottom:max(20px,env(safe-area-inset-bottom));border-radius:24px;padding:10px 18px;background:var(--accent);color:#fff;border:0;cursor:pointer;box-shadow:0 4px 14px #0000002e}.chat{position:fixed;z-index:25;right:20px;bottom:72px;width:min(420px,calc(100vw - 32px));height:min(560px,calc(100vh - 120px));background:var(--panel);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;box-shadow:0 8px 30px #0003}.chat .msgs{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px}.chat .m{padding:8px 12px;border-radius:10px;white-space:pre-wrap;max-width:88%}.chat .m.user{align-self:flex-end;background:var(--accent);color:#fff}.chat .m.assistant{align-self:flex-start;background:var(--track)}.chat form{display:flex;gap:6px;padding:10px;border-top:1px solid var(--line)}.chat form input{flex:1}.chat .head{padding:10px 12px;border-bottom:1px solid var(--line);font-weight:600;display:flex;justify-content:space-between}@media(max-width:600px){.chat,.chat-toggle{right:16px}}.proposal{align-self:stretch;border:1px solid var(--accent);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;background:var(--panel)}.proposal.applied{border-color:var(--good)}.proposal.rejected{border-color:var(--line);opacity:.75}.proposal-head{font-weight:600}.proposal-item{border-top:1px solid var(--line);padding-top:8px;display:flex;flex-direction:column;gap:4px;min-width:0}.proposal-item b{overflow-wrap:anywhere}table.diff th,table.diff td{padding:2px 6px 2px 0;border:0;white-space:normal;vertical-align:top;font-size:13px}table.diff th{width:4.5em;white-space:nowrap}table.diff del{color:var(--bad)}table.diff ins{color:var(--good);text-decoration:none;font-weight:600}.proposal-actions{display:flex;gap:8px}.proposal-actions button:not(.primary){cursor:pointer}.proposal-result{font-size:13px;color:var(--muted)}.proposal-result.applied{color:var(--good);font-weight:600}.seg2{grid-template-columns:repeat(2,1fr)}.view-tabs{max-width:320px;margin-bottom:14px}.layouts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;margin-bottom:12px}.layout-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;display:flex;flex-direction:column;overflow:hidden}.layout-open{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:14px}.layout-open:hover{background:var(--track)}.layout-open .muted{font-size:12px}.layout-paper{display:flex;align-items:center;justify-content:center;height:110px;max-width:100%;margin:0 auto 8px;background:#fffdf8;color:#8a7d70;border:1px solid var(--line);box-shadow:0 2px 6px #00000014;font-size:12px;font-weight:600}.layout-actions{display:flex;gap:12px;padding:8px 14px;border-top:1px solid var(--line)}fieldset.tpl{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:6px}fieldset.tpl legend{font-size:12px;color:var(--muted);margin-bottom:4px;padding:0}.sheet fieldset.tpl label{flex-direction:row;align-items:flex-start;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;cursor:pointer;color:var(--text);font-size:14px}.sheet fieldset.tpl label.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}fieldset.tpl label>span{display:flex;flex-direction:column}fieldset.tpl label .muted{font-size:12px}.designer{position:fixed;inset:0;z-index:40;display:flex;flex-direction:column;background:var(--bg)}.dz-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--line)}.dz-bar button:not(.icon):not(.primary){cursor:pointer;padding:5px 9px;white-space:nowrap}.dz-bar button.icon{width:34px;height:34px;font-size:18px}.dz-bar button:disabled{opacity:.35;cursor:default}.dz-name{font-weight:600;width:12em;min-width:0;border-color:transparent}.dz-name:hover,.dz-name:focus{border-color:var(--line)}.dz-save{font-size:12px;color:var(--muted);white-space:nowrap}.dz-save.error{color:var(--bad)}.dz-save.dirty{color:var(--warn)}.dz-sep{width:1px;align-self:stretch;background:var(--line);margin:2px 4px}.dz-group{display:inline-flex;align-items:center;gap:4px}.dz-zoom{min-width:58px;cursor:pointer}.dz-check{display:inline-flex;align-items:center;gap:4px;font-size:13px;white-space:nowrap;cursor:pointer}.dz-print{margin-left:auto;white-space:nowrap}.dz-pages{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;background:var(--panel);border-bottom:1px solid var(--line);font-size:13px}.dz-pages button{cursor:pointer;padding:3px 10px;font-size:13px}.dz-pages button.on{background:var(--accent);border-color:var(--accent);color:#fff}.dz-over{color:var(--warn);font-weight:600}.dz-main{flex:1;display:flex;min-height:0}.dz-canvas{flex:1;overflow:auto;background:#8f949b;padding:24px}.mpage.editing .el,.dz-handles .hd{touch-action:none}.dz-pagewrap{margin:0 auto;position:relative}.mpage{position:relative;overflow:hidden;box-shadow:0 2px 12px #00000040;color:#2b2522;flex:none}.mpage.editing{position:absolute;top:0;left:0;transform-origin:0 0;user-select:none}.dz-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(to right,rgba(37,99,235,.1) calc(1px / var(--z)),transparent 0),linear-gradient(to bottom,rgba(37,99,235,.1) calc(1px / var(--z)),transparent 0)}.mbg{position:absolute;inset:0;pointer-events:none}.dz-fold{position:absolute;top:0;bottom:0;border-left:calc(1px / var(--z)) dashed rgba(124,58,237,.7);pointer-events:none}.dz-margin{position:absolute;border:calc(1px / var(--z)) dashed rgba(219,39,119,.45);pointer-events:none}.el{position:absolute}.mpage.editing .el{cursor:move}.mpage.editing .el.locked{cursor:default}.mpage.editing .el:hover{outline:calc(1px / var(--z)) solid rgba(37,99,235,.45)}.mpage.editing .el.sel{outline:calc(1.5px / var(--z)) solid #2563eb}.mpage.editing .el.over{outline:calc(2px / var(--z)) dashed #dc2626}.el-body{width:100%;height:100%;overflow:hidden;position:relative}.el-body img{width:100%;height:100%;display:block}.el-text{display:flex;flex-direction:column;white-space:pre-wrap;overflow-wrap:anywhere}.el-line{display:flex;align-items:center;justify-content:center}.el-cat{display:flex;flex-direction:column}.mc-title{font-weight:700;margin-bottom:2mm;line-height:1.2}.mc-title.line{border-bottom:.3mm solid;padding-bottom:1mm}.mc-items{flex:1;min-height:0;column-fill:auto}.mi{break-inside:avoid;line-height:1.3}.mi-line{display:flex;align-items:baseline;gap:1.5mm}.mi-name{min-width:0}.mi-price{white-space:nowrap}.mi-leader{flex:1;border-bottom:.3mm dotted;min-width:4mm;transform:translateY(-.8mm)}.mi-gap{flex:1}.mi-desc{line-height:1.35;margin-top:.5mm}.mi.stack{display:flex;flex-direction:column;align-items:center;text-align:center}.el-empty{display:flex;align-items:center;justify-content:center;text-align:center;color:#9ca3af;font-size:10pt;background:repeating-linear-gradient(45deg,#00000008 0 3mm,#0000000f 3mm 6mm)}.el-cat .el-empty{background:none;font-size:9pt}.el-warn,.el-overtag{position:absolute;top:0;right:0;background:#dc2626;color:#fff;font:600 calc(11px / var(--z, 1))/1.4 system-ui,sans-serif;padding:0 calc(4px / var(--z, 1));border-radius:0 0 0 calc(4px / var(--z, 1));white-space:nowrap;pointer-events:none}.el-warn{background:#b45309}.el-overtag{top:auto;bottom:0;transform:translateY(100%);border-radius:0 0 calc(4px / var(--z)) calc(4px / var(--z))}.el-edit{position:absolute;inset:0;width:100%;height:100%;resize:none;border:0;padding:0;margin:0;background:#ffffffd9;outline:calc(2px / var(--z)) solid #2563eb;overflow:hidden;user-select:text}.dz-handles{position:absolute;pointer-events:none}.dz-handles .hd{position:absolute;width:calc(10px / var(--z));height:calc(10px / var(--z));background:#fff;border:calc(1.5px / var(--z)) solid #2563eb;border-radius:2px;pointer-events:auto;transform:translate(-50%,-50%);touch-action:none}.hd.nw{left:0;top:0;cursor:nwse-resize}.hd.n{left:50%;top:0;cursor:ns-resize}.hd.ne{left:100%;top:0;cursor:nesw-resize}.hd.e{left:100%;top:50%;cursor:ew-resize}.hd.se{left:100%;top:100%;cursor:nwse-resize}.hd.s{left:50%;top:100%;cursor:ns-resize}.hd.sw{left:0;top:100%;cursor:nesw-resize}.hd.w{left:0;top:50%;cursor:ew-resize}.dz-guide{position:absolute;pointer-events:none;background:#db2777}.dz-guide.v{top:0;bottom:0;width:calc(1px / var(--z))}.dz-guide.h{left:0;right:0;height:calc(1px / var(--z))}.dz-marquee{position:absolute;border:calc(1px / var(--z)) solid #2563eb;background:#2563eb14;pointer-events:none}.dz-panel{width:300px;flex:none;overflow-y:auto;background:var(--panel);border-left:1px solid var(--line);padding:12px 14px 40px;display:flex;flex-direction:column;gap:10px;font-size:13px}.dz-panel .muted{font-size:12px;margin:0}.pf-head{display:flex;align-items:center;justify-content:space-between;font-weight:700;font-size:14px;padding-top:4px}.pf-head .pf-check{font-weight:400;font-size:12px}.pf{display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--muted);min-width:0}.pf input,.pf select,.pf textarea{width:100%;min-width:0;color:var(--text)}.pf textarea{font:inherit;font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--panel);resize:vertical}.pf input[type=color]{width:36px;height:28px;padding:1px;flex:none;cursor:pointer}.pf-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.pf-grid.four{grid-template-columns:repeat(4,1fr)}.pf-color{display:flex;align-items:center;gap:6px}.pf-color .muted{font-family:ui-monospace,monospace}.pf-seg{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}.pf-seg button{flex:1;border:0;border-radius:0;padding:5px 2px;font-size:12px;cursor:pointer;min-width:0}.pf-seg button+button{border-left:1px solid var(--line)}.pf-seg button.on{background:var(--accent);color:#fff}.pf-seg.six{display:grid;grid-template-columns:repeat(3,1fr)}.pf-seg.six button:nth-child(4){border-left:0}.pf-seg.six button:nth-child(n+4){border-top:1px solid var(--line)}.pf-row{display:flex;flex-wrap:wrap;gap:6px}.pf-row button{cursor:pointer;padding:4px 9px;font-size:12px}.pf-row button.bad{color:var(--bad)}.pf-check{display:flex;align-items:center;gap:6px;font-size:13px;cursor:pointer}.pf-fontprev{font-size:16px;color:var(--text);padding:4px 8px;border:1px dashed var(--line);border-radius:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pf .pf-check input{width:auto;flex:none}.pf-items{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto;padding:4px 0}.dz-panel>button:not(.link){cursor:pointer;padding:6px 10px;font-size:13px}.designer .overlay{z-index:60}.sheet.qe .qe-row{display:grid;grid-template-columns:minmax(0,1fr) 80px;gap:6px 8px;padding:8px 0;border-bottom:1px solid var(--line)}.sheet.qe .qe-row .qe-desc,.sheet.qe .qe-flags{grid-column:1 / -1}.sheet.qe .qe-flags{display:flex;flex-wrap:wrap;gap:4px 20px}.sheet.qe .qe-row label.check{font-size:13px;margin:0}.sheet.qe .qe-row.inactive input{color:var(--muted)}.cat-row{display:grid;grid-template-columns:minmax(0,1fr) auto 28px 28px 28px;gap:6px;align-items:center}.cat-row button:disabled{opacity:.3}.orient{display:flex;gap:8px;align-items:flex-end}.orient button{display:flex;align-items:center;gap:6px;padding:6px 12px;cursor:pointer}.orient button.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--accent);font-weight:600}.orient .paper{display:inline-block;border:1.5px solid currentColor;border-radius:2px}.orient .paper.p{width:12px;height:17px}.orient .paper.l{width:17px;height:12px}.sheet.cutout{width:min(760px,100%);max-height:100dvh;overflow-y:auto}.co-stage{display:flex;justify-content:center;align-items:center;min-height:160px;border-radius:8px;background:repeating-conic-gradient(#d9d9d9 0 25%,#fff 0 50%) 0 0 / 16px 16px}.co-canvas{display:block;max-width:100%;max-height:52dvh;touch-action:none;cursor:crosshair}.co-canvas.erase,.co-canvas.restore{cursor:cell}.co-tools{display:flex;flex-direction:column;gap:8px}.co-tools>button{cursor:pointer;padding:8px 12px}.co-range{display:grid!important;grid-template-columns:5em 1fr 3.5em;align-items:center;gap:8px;font-size:13px}.co-range span{text-align:right;color:var(--muted)}.pf-help{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px;line-height:1.6}.pf-help ul{margin:4px 0 0;padding-left:18px}.dz-msg{padding:24px;color:var(--muted)}.dz-msg.err{color:var(--bad)}#print-root{display:none}@media print{#print-root .mbg{-webkit-print-color-adjust:exact;print-color-adjust:exact}#print-root .mpage{box-shadow:none;page-break-after:always;break-after:page;-webkit-print-color-adjust:exact;print-color-adjust:exact}#print-root .mpage:last-child{page-break-after:auto;break-after:auto}}@media(max-width:900px){.dz-main{flex-direction:column}.dz-canvas{padding:12px}.dz-panel{width:auto;height:38vh;border-left:0;border-top:1px solid var(--line);padding-bottom:max(20px,env(safe-area-inset-bottom))}}@media(max-width:600px){.dz-bar{gap:4px;padding:4px 6px}.dz-name{width:8em;flex:1}.dz-sep{display:none}.dz-group{flex-wrap:wrap}.dz-bar button:not(.icon):not(.primary){padding:4px 7px;font-size:13px}.dz-print{margin-left:0}}
