:root{--color-page:#f1f5f9;--color-surface:#fff;--color-surface-muted:#f8fafc;--color-sidebar:#0f172a;--color-preview-head:#334155;--color-overlay:rgba(15,23,42,0.45);--color-text:#334155;--color-text-strong:#1e293b;--color-text-ink:#0f172a;--color-text-muted:#64748b;--color-text-faint:#94a3b8;--color-text-label:#475569;--color-text-on-dark:#fff;--color-text-on-dark-muted:#cbd5e1;--color-text-on-dark-soft:#e2e8f0;--color-brand:#38bdf8;--color-primary:#0284c7;--color-primary-deep:#0369a1;--color-primary-soft:#e0f2fe;--color-primary-hover:#f0f9ff;--color-link-blue:#3b82f6;--color-border:#cbd5e1;--color-border-soft:#e2e8f0;--color-border-dark:#334155;--color-success:#10b981;--color-success-soft:#d1fae5;--color-success-text:#047857;--color-secondary:#64748b;--color-ghost:#e2e8f0;--color-error:#dc2626;--color-error-bg:#fef2f2;--color-error-text:#b91c1c;--color-warn-bg:#fffbeb;--color-warn-text:#b45309;--color-info-bg:#e0f2fe;--color-info-text:#0369a1;--btn-primary-bg:var(--color-primary);--btn-primary-fg:var(--color-text-on-dark);--btn-primary-hover:var(--color-primary-deep);--btn-secondary-bg:var(--color-secondary);--btn-secondary-fg:var(--color-text-on-dark);--btn-secondary-hover:#475569;--btn-success-bg:var(--color-success);--btn-success-fg:var(--color-text-on-dark);--btn-success-hover:#059669;--btn-add-bg:var(--color-primary-soft);--btn-add-fg:var(--color-primary-deep);--btn-add-hover:#bae6fd;--btn-danger-bg:var(--color-error-bg);--btn-danger-fg:var(--color-error-text);--btn-danger-hover:#fecaca;--btn-ghost-bg:var(--color-ghost);--btn-ghost-fg:var(--color-text-strong);--btn-ghost-hover:#cbd5e1;--color-table-border:#94a3b8;--color-table-head:#e2e8f0;--color-table-stripe:#f8fafc;--space-1:4px;--space-1_5:6px;--space-2:8px;--space-2_5:10px;--space-3:12px;--space-3_5:14px;--space-4:16px;--space-4_5:18px;--space-5:20px;--space-5_5:22px;--space-6:24px;--space-10:40px;--radius-xs:3px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:10px;--sidebar-width:280px;--panel-files-width:360px;--write-max-width:900px;--search-input-width:220px;--editor-min-height:280px;--ctx-menu-min-width:240px;--ctx-menu-item-height:36px;--ctx-menu-max-lines:15;--ctx-menu-max-height:calc(var(--ctx-menu-item-height) * var(--ctx-menu-max-lines));--modal-max-width:520px;--font-sans:"Malgun Gothic","Apple SD Gothic Neo",sans-serif;--fs-xs:11px;--fs-sm:12px;--fs-md:13px;--fs-base:14px;--fs-lg:15px;--fs-xl:16px;--fs-2xl:17px;--fs-3xl:18px;--fs-4xl:20px;--fs-5xl:22px;--lh-body:1.5;--lh-article:1.7;--shadow-sm:0 1px 3px rgba(0,0,0,0.04);--shadow-md:0 12px 28px rgba(0,0,0,0.15);--shadow-lg:0 20px 40px rgba(0,0,0,0.2);--ease-fast:0.15s;--ease-sidebar:0.2s;--ease-write-focus:0.34s cubic-bezier(0.22,1,0.36,1);--z-ctx:50;--z-files-drawer:4;--z-modal:1000;--z-toast:1100;--files-drawer-tab-width:36px;--ease-drawer:0.22s ease}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font-sans);background:var(--color-page);color:var(--color-text);line-height:var(--lh-body)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{height:100vh;background:var(--color-page)}.app-shell,.sidebar{display:flex;overflow:hidden}.sidebar{position:relative;z-index:3;width:var(--sidebar-width);flex-shrink:0;background:var(--color-sidebar);color:var(--color-text-on-dark);padding:var(--space-4);flex-direction:column;gap:var(--space-3);border-right:1px solid var(--color-border-dark);transition:width var(--ease-sidebar),padding var(--ease-sidebar),opacity var(--ease-sidebar)}.sidebar.collapsed{width:0;padding:0;opacity:0;border:none;overflow:hidden}.sidebar-title{font-size:var(--fs-xl);font-weight:700;color:var(--color-brand);border-bottom:1px solid var(--color-border-dark);padding-bottom:var(--space-2_5)}.sidebar-search{display:flex;gap:var(--space-1_5);flex-shrink:0}.sidebar-search-input{flex:1 1;min-width:0;padding:var(--space-2) var(--space-2_5);border:1px solid var(--color-border-dark);border-radius:var(--radius-md);background:rgba(255,255,255,.08);color:var(--color-text-on-dark);font:inherit;font-size:var(--fs-sm)}.sidebar-search-input::placeholder{color:var(--color-text-on-dark-muted)}.sidebar-search-input:focus{outline:2px solid var(--color-primary);outline-offset:1px;background:rgba(255,255,255,.12)}.sidebar-search-btn{flex-shrink:0;padding:var(--space-2) var(--space-2_5);border:0;border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-text-on-dark);font:inherit;font-size:var(--fs-sm);font-weight:700;cursor:pointer}.sidebar-search-btn:hover{background:var(--color-primary-deep)}.sidebar-link{display:block;width:100%;padding:var(--space-2) var(--space-3);border:0;border-radius:var(--radius-md);background:transparent;font:inherit;font-size:var(--fs-md);text-align:left;color:var(--color-text-on-dark-muted);cursor:pointer;text-decoration:none}.sidebar-link:hover{background:var(--color-text-strong)}.sidebar-active{background:var(--color-primary);color:var(--color-text-on-dark);font-weight:700;border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--fs-md)}.main{position:relative;z-index:1;isolation:isolate;flex:1 1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.header{justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-5);background:var(--color-surface);border-bottom:1px solid var(--color-border)}.header,.header-start{display:flex;flex-wrap:wrap;align-items:center}.header-start{gap:var(--space-2);min-width:0}.header-menu-btn{display:none;flex-shrink:0;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-page);color:var(--color-text-strong);cursor:pointer}.header-menu-bars,.header-menu-bars:after,.header-menu-bars:before{display:block;width:1.05rem;height:2px;border-radius:1px;background:currentColor}.header-menu-bars{position:relative}.header-menu-bars:after,.header-menu-bars:before{content:"";position:absolute;left:0}.header-menu-bars:before{top:-5px}.header-menu-bars:after{top:5px}.sidebar-backdrop{display:none}.header-icon-btn{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-page);color:var(--color-text-strong);cursor:pointer;transition:background var(--ease-fast),border-color var(--ease-fast),color var(--ease-fast)}.header-icon-btn:hover{background:var(--color-primary-hover);border-color:var(--color-primary);color:var(--color-primary-deep)}.header-icon-btn-svg{display:block}.header h2{font-size:var(--fs-3xl);color:var(--color-text-strong)}.header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.header-book-menu-wrap{position:relative}.header-book-menu-btn{min-width:3.25rem}.header-book-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:50;min-width:7.5rem;padding:.25rem;border-radius:6px;background:var(--color-surface,#fff);color:var(--color-text,#222);box-shadow:0 4px 16px rgba(0,0,0,.18);border:1px solid rgba(0,0,0,.08)}.header-book-menu-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:.4rem .55rem;border-radius:4px;cursor:pointer;font-size:.85rem;color:inherit}.header-book-menu-item:hover{background:rgba(0,0,0,.06)}.header-book-menu-item.is-danger{color:var(--color-danger,#b42318)}.header-status{font-size:var(--fs-md);color:var(--color-text-muted)}.header-user{color:var(--color-text-label);max-width:8rem}.header-sub,.header-user{font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-sub{color:var(--color-text-muted)}.workspace{position:relative;display:flex;gap:var(--space-4);flex:1 1;padding:var(--space-4);overflow:hidden}.workspace.compact{padding:var(--space-2)}.workspace.workspace-write{padding:0}.workspace-stage{display:flex;overflow:hidden}.workspace-stage,.workspace-stage>*{flex:1 1;min-width:0;min-height:0}.workspace-stage.pane-forward{animation:kms-pane-forward .34s cubic-bezier(.22,1,.36,1)}.workspace-stage.pane-back{animation:kms-pane-back .3s cubic-bezier(.22,1,.36,1)}@keyframes kms-pane-forward{0%{opacity:.35;transform:translateX(36px)}to{opacity:1;transform:translateX(0)}}@keyframes kms-pane-back{0%{opacity:.35;transform:translateX(-28px)}to{opacity:1;transform:translateX(0)}}@media (prefers-reduced-motion:reduce){.workspace-stage.pane-back,.workspace-stage.pane-forward{animation:none}}.tree{list-style:none;overflow-y:auto;flex:1 1;min-height:0;font-size:var(--fs-md)}.sidebar-foot{margin-top:auto;flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border-dark)}.sidebar-drive{margin-top:0}.sidebar-account{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-1) 0}.sidebar-account-main{position:relative;flex:1 1;min-width:0}.sidebar-user-trigger{display:flex;align-items:center;gap:var(--space-1_5);width:100%;min-width:0;min-height:2rem;padding:.2rem .35rem .2rem .15rem;margin:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--color-text-on-dark);font:inherit;text-align:left;cursor:pointer}.sidebar-user-trigger.is-open,.sidebar-user-trigger:hover{background:rgba(255,255,255,.08)}.sidebar-user-name{flex:1 1;min-width:0;font-size:var(--fs-sm);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-user-caret{flex-shrink:0;font-size:.7rem;line-height:1;color:var(--color-text-on-dark-muted);transition:transform .15s ease}.sidebar-user-trigger.is-open .sidebar-user-caret{transform:rotate(180deg)}.sidebar-user-menu{position:absolute;left:0;right:.5rem;bottom:calc(100% + .35rem);z-index:40;display:flex;flex-direction:column;padding:var(--space-1);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-md);background:#1e293b;box-shadow:0 8px 24px rgba(0,0,0,.35)}.sidebar-user-menu-item{display:block;width:100%;margin:0;padding:.55rem .7rem;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-on-dark);font:inherit;font-size:var(--fs-sm);font-weight:600;text-align:left;text-decoration:none;cursor:pointer}.sidebar-user-menu-item:hover{background:rgba(255,255,255,.1)}.sidebar-user-menu-item.is-danger{color:#fca5a5}.sidebar-user-menu-item.is-danger:hover{background:rgba(248,113,113,.14)}.sidebar-fab{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;padding:0;border:0;border-radius:50%;background:var(--color-primary);color:var(--color-text-on-dark);font:inherit;font-size:1.5rem;font-weight:500;line-height:1;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.28)}.sidebar-fab-glyph{display:block;transform:translateY(-.06em)}.sidebar-fab:hover{background:var(--color-primary-deep)}.tree ul{list-style:none;margin-left:var(--space-3);padding-left:var(--space-2)}.tree-btn{display:flex;align-items:center;gap:.5rem;width:100%;text-align:left;border:none;background:transparent;color:var(--color-text-on-dark-soft);padding:7px var(--space-2_5);border-radius:var(--radius-md);cursor:pointer}.tree-btn-shelf .tree-btn-label{flex:1 1}.tree-toggle-caret{flex-shrink:0;width:1.5rem;height:1.5rem;margin-left:auto;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;color:var(--color-text-on-dark-muted);transform:rotate(-90deg);transition:transform .15s ease;border-radius:50%}.tree-toggle-caret:hover{color:var(--color-text-on-dark);background:rgba(255,255,255,.1)}.tree-btn-shelf.is-expanded .tree-toggle-caret{transform:rotate(0deg)}.tree-btn-shelf.active .tree-toggle-caret{color:inherit}.tree-btn-icon{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;opacity:.9}.tree-btn-icon-sm{width:1.1rem;opacity:.75}.tree-btn-book{padding-left:calc(var(--space-2_5) + 1.25rem + .5rem)}.tree-btn-help .tree-btn-label{font-weight:600;opacity:.95}.tree-btn-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-btn:hover{background:var(--color-text-strong)}.tree-btn.active{background:var(--color-primary);color:var(--color-text-on-dark);font-weight:700}.tree-btn.active .tree-btn-icon{opacity:1}.tree-btn.muted{color:var(--color-text-faint)}.panel-title-with-icon{display:flex;align-items:center;gap:.45rem}.panel-title-icon{display:inline-flex;color:var(--color-primary);flex-shrink:0}.loading{height:100vh;justify-content:center;color:var(--color-text-muted)}.error-banner,.loading{display:flex;align-items:center}.error-banner{gap:var(--space-3);background:var(--color-error-bg);color:var(--color-error-text);padding:var(--space-2) var(--space-4) var(--space-2) var(--space-5);font-size:var(--fs-md)}.error-banner-text{flex:1 1;min-width:0}.error-banner-actions{gap:var(--space-1)}.error-banner-action,.error-banner-actions{flex-shrink:0;display:inline-flex;align-items:center}.error-banner-action{justify-content:center;width:1.75rem;height:1.75rem;margin:0;padding:0;border:0;border-radius:999px;background:transparent;color:inherit;cursor:pointer;line-height:0;opacity:.75}.error-banner-action:hover{opacity:1;background:rgba(0,0,0,.06)}.error-banner-action:focus-visible{outline:2px solid currentColor;outline-offset:1px;opacity:1}@media (max-width:1033px){.header-menu-btn{display:inline-flex}.sidebar-backdrop{display:block;position:fixed;inset:0;z-index:35;border:0;padding:0;margin:0;background:rgba(15,23,42,.45);cursor:pointer}.sidebar{position:fixed;left:0;top:0;bottom:0;z-index:50;transition:transform var(--ease-sidebar);box-shadow:8px 0 28px rgba(15,23,42,.2)}.sidebar,.sidebar.collapsed{width:min(var(--sidebar-width),86vw);transform:translateX(-105%);opacity:1;padding:var(--space-4);border-right:1px solid var(--color-border-dark)}.sidebar.is-open{transform:translateX(0)}.header h2{font-size:var(--fs-xl)}.workspace{padding:var(--space-3)}}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-4_5);display:flex;flex-direction:column;gap:var(--space-3);overflow:auto;box-shadow:var(--shadow-sm)}.panel-list{flex:1 1;min-height:0;overflow:hidden}.panel-article{flex:1 1;width:100%;min-width:0}.panel-files{width:var(--panel-files-width);flex:none}.panel-title{font-size:var(--fs-lg);font-weight:700;color:var(--color-text-strong)}.doc-card{padding:var(--space-3_5);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;background:var(--color-surface);text-align:left;width:100%;transition:var(--ease-fast)}.doc-card:hover{border-color:var(--color-link-blue);background:var(--color-surface-muted)}.doc-card h4{margin-top:var(--space-1_5);font-size:var(--fs-base);color:var(--color-text-strong)}.meta{font-size:var(--fs-sm);color:var(--color-text-muted);margin-top:var(--space-1)}.badge{display:inline-block;color:var(--color-primary);background:var(--color-primary-soft);padding:2px var(--space-1_5)}.badge,.doc-type-tag{font-size:var(--fs-xs);border-radius:var(--radius-sm)}.doc-type-tag{display:inline-flex;align-items:center;flex-shrink:0;padding:2px var(--space-2);font-weight:700;line-height:1.4;border:1px solid transparent;white-space:nowrap;background:var(--color-ghost);color:var(--color-text-label)}.doc-type-tag--daily{background:var(--color-info-bg);color:var(--color-info-text);border-color:#7dd3fc}.doc-type-tag--maintenance{background:var(--color-warn-bg);color:var(--color-warn-text);border-color:#fcd34d}.doc-type-tag--knowledge{background:var(--color-primary-soft);color:var(--color-primary-deep);border-color:#7dd3fc}.doc-type-tag--notice{background:#fce7f3;color:#9d174d;border-color:#f9a8d4}.doc-type-tag--equipment{background:var(--color-success-soft);color:var(--color-success-text);border-color:#6ee7b7}.doc-type-tag--facility{background:#e0f2fe;color:#075985;border-color:#7dd3fc}.doc-type-tag--facility_repair{background:var(--color-warn-bg);color:var(--color-warn-text);border-color:#fcd34d}.doc-type-tag--attachment{background:#f3e8ff;color:#6b21a8;border-color:#d8b4fe}.doc-type-tag--machine_profile{background:var(--color-success-soft);color:var(--color-success-text);border-color:#6ee7b7}.doc-type-tag--purchase{background:#ecfdf5;color:#047857;border-color:#6ee7b7}.empty{text-align:center;color:var(--color-text-faint);margin-top:var(--space-10);font-size:var(--fs-md)}.snippet{margin-top:var(--space-1)}.search-results-meta,.snippet{font-size:var(--fs-sm);color:var(--color-text-muted)}.search-results-meta{margin-left:var(--space-1);font-weight:400}.search-results-list{flex:1 1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:var(--space-3);scrollbar-gutter:stable}.search-results-list .doc-card{flex-shrink:0}.search-result-heading,.search-result-top{display:flex;align-items:center;gap:var(--space-2)}.search-result-heading{flex:1 1;min-width:0}.search-result-heading .badge{flex-shrink:0}.search-result-location{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-sm)}.search-result-location,.search-result-score{white-space:nowrap;color:var(--color-text-muted)}.search-result-score{flex-shrink:0;padding:2px var(--space-2);border:1px solid var(--color-border-soft);border-radius:999px;background:var(--color-surface-muted);font-size:var(--fs-xs);font-weight:600}.search-result-card .snippet{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.article-title{border-bottom:2px solid var(--color-border-soft);padding-bottom:var(--space-3)}.article-title h1{font-size:var(--fs-5xl);color:var(--color-text-ink);margin:0 0 var(--space-1_5)}.article-place-shelf{font-size:.62em;font-weight:600;color:var(--color-text-muted)}.article-title-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.article-doc-title{margin:0;flex:1 1;min-width:8rem;font-size:var(--fs-xl);font-weight:700;color:var(--color-text-ink)}.article-meta{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.35rem;margin-left:auto;font-size:var(--fs-sm);color:var(--color-text-muted);text-align:right}.article-meta-sep{color:var(--color-text-faint)}.article-meta-actions,.article-meta-revision{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.35rem}.article-delete-actions{display:inline-flex;flex-wrap:wrap;align-items:center;gap:.65rem}.article-delete-action,.article-print-action{margin:0;padding:0;border:0;background:none;font:inherit;font-size:inherit;font-weight:600;color:var(--color-text-label);cursor:pointer;text-decoration:underline;text-underline-offset:2px}.article-delete-action:hover:not(:disabled),.article-print-action:hover{color:var(--color-text-ink)}.article-delete-action.is-danger{color:#c2410c}.article-delete-action.is-danger:hover:not(:disabled){color:#9a3412}.article-delete-action:disabled{opacity:.55;cursor:wait}.article-revision-badge{margin-left:var(--space-2);font-size:var(--fs-lg);font-weight:600;color:var(--color-text-muted);white-space:nowrap}.article-title .status-badge{margin-left:var(--space-2);vertical-align:middle;font-size:var(--fs-sm)}.article-body{line-height:var(--lh-article);font-size:var(--fs-lg);color:var(--color-text)}.article-body img{max-width:100%;height:auto;display:block;margin:var(--space-2_5) 0}.article-body h1{font-size:var(--fs-4xl);margin:var(--space-3_5) 0 var(--space-2)}.article-body h1,.article-body h2{color:var(--color-text-ink);font-weight:700}.article-body h2{font-size:var(--fs-2xl);margin:var(--space-5) 0 var(--space-2);padding-bottom:var(--space-1_5);border-bottom:1px solid var(--color-border-soft)}.article-body h3{font-size:var(--fs-xl);margin:var(--space-4) 0 var(--space-1_5);color:var(--color-text-strong);font-weight:700}.article-body p{margin:0 0 var(--space-2_5)}.article-body ol,.article-body ul{padding-left:var(--space-5);margin:0 0 var(--space-3)}.article-body li{margin-bottom:var(--space-1)}.article-body li>ol,.article-body li>ul{margin-top:var(--space-1);margin-bottom:var(--space-1)}.article-body hr{border:0;border-top:1px solid var(--color-border-soft);margin:var(--space-5) 0}.article-body strong{font-weight:700;color:var(--color-text-ink)}.help-article .help-body{max-width:46rem;padding-top:var(--space-2)}.revision-dock-backdrop{position:absolute;inset:0;z-index:calc(var(--z-files-drawer) - 2);border:0;padding:0;margin:0;background:var(--color-overlay);cursor:pointer}.revision-dock{position:absolute;left:0;right:0;bottom:3.5rem;z-index:calc(var(--z-files-drawer) - 1);display:flex;flex-direction:column;max-height:min(50vh,360px);pointer-events:none}.revision-dock-bar,.revision-dock-panel{pointer-events:auto}.revision-dock-bar{order:2;flex-shrink:0;display:flex;align-items:center;min-height:2.5rem;padding:0 var(--space-3);background:var(--color-surface);border-top:1px solid var(--color-border-soft);box-shadow:0 -2px 10px rgba(0,0,0,.04)}.revision-dock-toggle{display:inline-flex;align-items:center;gap:var(--space-1_5);padding:var(--space-1_5) 0;border:0;background:transparent;font:inherit;font-size:var(--fs-sm);font-weight:700;color:var(--color-text-muted);cursor:pointer;text-align:left}.revision-dock-toggle:hover{color:var(--color-text-strong)}.revision-dock-toggle-label{display:inline-flex;align-items:center;gap:var(--space-2)}.revision-dock-toggle-count{display:inline-flex;align-items:center;justify-content:center;min-width:1.25rem;padding:0 var(--space-1_5);border-radius:var(--radius-sm);background:var(--color-border-soft);font-size:var(--fs-xs);font-weight:700;color:var(--color-text-muted)}.revision-dock-toggle-chevron{color:var(--color-text-faint)}.revision-dock-panel{order:1;flex:1 1;min-height:0;overflow:auto;background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -8px 24px rgba(0,0,0,.08);animation:revision-dock-rise .24s cubic-bezier(.22,1,.36,1)}@keyframes revision-dock-rise{0%{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:translateY(0)}}.revision-list{list-style:none;font-size:var(--fs-sm);color:var(--color-text-muted);padding:var(--space-2) var(--space-3);margin:0}.revision-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--color-border-soft)}.revision-item:last-child{border-bottom:0}.revision-item--empty{justify-content:flex-start;color:var(--color-text-faint)}.revision-item.active{color:var(--color-text-strong)}.revision-item-meta{flex:1 1;min-width:0}.revision-item-ver{display:inline-block;margin-right:var(--space-1_5);font-weight:700;color:var(--color-text-label)}.print-only{display:none}.article-revisions-print-title{margin:0 0 var(--space-2);font-size:var(--fs-md);font-weight:700;color:var(--color-text-strong)}.article-revisions-print-list{list-style:none;margin:0;padding:0;font-size:var(--fs-sm);color:var(--color-text-muted);line-height:1.55}.article-revisions-print-list li{margin:.2rem 0}.article-revisions-print-ver{display:inline-block;min-width:2.25rem;margin-right:var(--space-1_5);font-weight:700;color:var(--color-text-label)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--space-2) var(--space-3);font-size:var(--fs-md);font-weight:700;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:background var(--ease-fast),color var(--ease-fast),border-color var(--ease-fast)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-sm{padding:5px var(--space-2);font-size:var(--fs-sm);border-radius:var(--radius-sm)}.btn-primary{background:var(--btn-primary-bg);color:var(--btn-primary-fg)}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover)}.btn-secondary{background:var(--btn-secondary-bg);color:var(--btn-secondary-fg)}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-hover)}.btn-success{background:var(--btn-success-bg);color:var(--btn-success-fg)}.btn-success:hover:not(:disabled){background:var(--btn-success-hover)}.btn-add{background:var(--btn-add-bg);color:var(--btn-add-fg);border-color:#7dd3fc}.btn-add:hover:not(:disabled){background:var(--btn-add-hover)}.btn-danger{background:var(--btn-danger-bg);color:var(--btn-danger-fg);border-color:#fca5a5}.btn-danger:hover:not(:disabled){background:var(--btn-danger-hover)}.btn-ghost{background:var(--btn-ghost-bg);color:var(--btn-ghost-fg)}.btn-ghost:hover:not(:disabled){background:var(--btn-ghost-hover)}.btn-download{background:var(--color-link-blue);color:var(--color-text-on-dark)}.btn-history{background:var(--btn-secondary-bg);color:var(--btn-secondary-fg)}.btn-row{display:flex;gap:var(--space-2);flex-wrap:wrap}.form-grid{display:grid;gap:var(--space-3);grid-template-columns:repeat(3,1fr)}.form-grid-title-date{display:grid;gap:var(--space-3);grid-template-columns:7fr 3fr;align-items:end}@media (max-width:900px){.form-grid{grid-template-columns:1fr}}.form-group{display:flex;flex-direction:column;gap:var(--space-1_5);font-size:var(--fs-base)}.form-group label,.form-label{font-size:var(--fs-md);font-weight:700;color:var(--color-text-label)}.form-label-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-height:1.5rem}.form-label-row .form-label{margin:0}.form-group input,.form-group select,.form-group textarea{padding:var(--space-2_5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--fs-base);background:var(--color-surface)}.hint{font-size:var(--fs-sm);color:var(--color-text-faint);font-weight:400}.info-box{background:var(--color-info-bg);color:var(--color-info-text)}.info-box,.warn-box{padding:var(--space-2_5) var(--space-3);border-radius:var(--radius-md);font-size:var(--fs-md)}.warn-box{background:var(--color-warn-bg);color:var(--color-warn-text)}.write-page{display:flex;height:100vh;overflow:hidden;background:var(--color-page)}.write-page-embedded{height:100%;width:100%;min-height:0;background:var(--color-page)}.write-page-embedded>.main{min-width:0;overflow:hidden}.write-body,.write-page-embedded>.main{flex:1 1;min-height:0;display:flex;flex-direction:column}.write-body{overflow:auto;padding:var(--space-4);transition:padding var(--ease-write-focus)}.write-body.focus-mode{padding:var(--space-2);overflow:hidden}.write-card{margin:0 auto;width:100%;max-width:var(--write-max-width);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);transition:max-width var(--ease-write-focus),padding var(--ease-write-focus),gap var(--ease-write-focus),border-radius var(--ease-write-focus)}.write-card.focus-mode{max-width:100%;height:100%;min-height:0;padding:var(--space-3);gap:var(--space-2)}.write-edit-fieldset{display:flex;flex:1 1;flex-direction:column;min-width:0;min-height:0;gap:var(--space-4);margin:0;padding:0;border:0}.write-card.focus-mode .write-edit-fieldset{gap:var(--space-2)}.quill-shell.quill-readonly .ql-toolbar{pointer-events:none;opacity:.55}.quill-shell.quill-readonly .ql-editor{cursor:default}.quill-shell.quill-readonly .quill-hint-collapse{display:none}.write-collapse{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows var(--ease-write-focus),opacity .22s ease,margin var(--ease-write-focus)}.write-collapse-inner{overflow:hidden;min-height:0}.write-footer .write-collapse-inner,.write-meta .write-collapse-inner{display:flex;flex-direction:column;gap:var(--space-4)}.write-context-bar{margin:0;padding:.35rem 0;color:var(--muted,#64748b);font-size:var(--fs-sm,.875rem)}.write-card.focus-mode .write-collapse{grid-template-rows:0fr;opacity:0;margin:0;pointer-events:none}.write-editor-wrap{display:flex;flex-direction:column;gap:var(--space-1_5);font-size:var(--fs-base);min-height:0;transition:flex-grow var(--ease-write-focus)}.write-editor-wrap.focus-mode{flex:1 1 auto;min-height:0;gap:var(--space-2)}.write-editor-wrap.focus-mode .quill-shell{flex:1 1 auto;min-height:0}.image-library{flex:0 0 auto;margin-top:var(--space-2);padding:var(--space-3);border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:var(--color-surface-muted);display:flex;flex-direction:column;gap:var(--space-2);position:relative;z-index:1;transition:padding var(--ease-write-focus),margin var(--ease-write-focus)}.image-library-focus{margin-top:0;padding:var(--space-2) var(--space-2_5)}.image-library-head{flex:0 0 auto;align-items:center;justify-content:space-between;font-size:var(--fs-md);color:var(--color-text-strong)}.image-library-head,.image-library-head-main{display:flex;flex-wrap:wrap;gap:var(--space-2)}.image-library-head-main{align-items:baseline;min-width:0}.image-library-tabs{flex:0 0 auto;margin-left:auto}.image-library-empty{margin:0;font-size:var(--fs-sm);color:var(--color-text-muted)}.image-library-list{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-2);max-height:7.5rem;overflow-x:auto;overflow-y:auto}.image-library-item{flex:0 0 auto;width:96px;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);cursor:grab;overflow:hidden;text-align:left;transition:border-color var(--ease-fast),box-shadow var(--ease-fast)}.image-library-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.image-library-item:active{cursor:grabbing}.image-library-item img{display:block;width:100%;height:72px;object-fit:cover;background:var(--color-ghost)}.image-library-name{display:block;padding:var(--space-1) var(--space-1_5);font-size:var(--fs-xs);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.structured-form{gap:var(--space-4)}.structured-form,.structured-list{display:flex;flex-direction:column}.structured-list{gap:var(--space-2)}.structured-list.is-root-spaced>.structured-work-block.has-children:not(:last-child){margin-bottom:var(--space-5)}.structured-section{display:flex;flex-direction:column;gap:var(--space-2)}.structured-section-head{position:sticky;top:-16px;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin:0 calc(-1 * var(--space-2)) var(--space-1_5);padding:var(--space-2);padding-top:16px;background:var(--color-surface);border-bottom:1px solid var(--color-border-soft);box-shadow:0 1px 0 var(--color-surface)}.structured-section-head .form-label{margin:0}.structured-section-head-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-1)}.linked-docs-selected,.linked-docs-view{list-style:none;margin:0 0 var(--space-3);padding:0;display:flex;flex-direction:column;gap:var(--space-1_5)}.linked-docs-candidate,.linked-docs-item{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2_5);border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:var(--color-surface-muted);text-align:left}.linked-docs-candidate{width:100%;cursor:pointer;font:inherit;color:inherit;transition:background var(--ease-fast),border-color var(--ease-fast)}.linked-docs-candidate:hover{border-color:var(--color-primary);background:var(--color-primary-hover)}.linked-docs-meta{font-size:var(--fs-sm);color:var(--color-text-muted);flex-shrink:0}.linked-docs-title{flex:1 1;min-width:6rem;font-weight:700;color:var(--color-text-strong)}.linked-docs-add{font-size:var(--fs-sm);font-weight:700;color:var(--color-primary-deep);opacity:0;transition:opacity var(--ease-fast)}.linked-docs-candidate:focus-visible .linked-docs-add,.linked-docs-candidate:hover .linked-docs-add{opacity:1}.linked-docs-modal{width:min(32rem,94vw);max-height:min(85dvh,40rem);padding:var(--space-4)}.linked-docs-modal-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.linked-docs-modal-head h3{margin:0;font-size:var(--fs-lg)}.linked-docs-picker{display:flex;flex-direction:column;gap:var(--space-2);min-height:0;flex:1 1}.linked-docs-filters{margin:0}.linked-docs-candidates{display:flex;flex-direction:column;gap:var(--space-1_5);max-height:min(50dvh,22rem);overflow:auto;padding:var(--space-1);border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:var(--color-surface)}.linked-docs-virtual{position:relative;flex:0 0 auto}.linked-docs-virtual .linked-docs-candidate{position:absolute;left:0;right:0;height:56px;box-sizing:border-box;flex-wrap:nowrap}.linked-docs-modal .linked-docs-candidates{max-height:min(52dvh,24rem)}.linked-docs-link{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);width:100%;padding:var(--space-2) var(--space-2_5);border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:var(--color-surface-muted);text-align:left;text-decoration:none;font:inherit;color:inherit;cursor:pointer;font-size:var(--fs-sm)}.linked-docs-link:hover{border-color:var(--color-primary);background:var(--color-primary-hover)}.linked-docs-link:hover .linked-docs-title{color:var(--color-primary);text-decoration:underline}.linked-docs-link-missing,.linked-docs-link-missing:hover{cursor:default;opacity:.72;border-color:var(--color-border-soft);background:var(--color-surface-muted)}.linked-docs-link-missing:hover .linked-docs-title{color:inherit;text-decoration:none}.linked-docs-item-missing{opacity:.85}.linked-docs-deleted{font-weight:700;color:var(--color-text-muted);white-space:nowrap}.linked-docs-categories{display:flex;flex-direction:column;gap:var(--space-1_5)}.linked-docs-category{display:flex;align-items:center;width:100%;padding:var(--space-2_5) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);font:inherit;font-weight:700;color:var(--color-text-strong);cursor:pointer;text-align:left}.linked-docs-category:hover{border-color:var(--color-primary);background:var(--color-primary-hover);color:var(--color-primary-deep)}.linked-docs-list-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2)}.linked-docs-list-type{font-size:var(--fs-md);color:var(--color-text-strong)}.linked-docs-search{flex:1 1;min-width:10rem;padding:var(--space-2) var(--space-2_5);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;background:var(--color-surface)}.linked-docs-sentinel{height:1px}.backlinks-block{display:flex;flex-direction:column;gap:var(--space-2)}.structured-work-block{display:flex;flex-direction:column;gap:var(--space-1_5)}.structured-list-row{display:flex;gap:var(--space-2);align-items:center}.structured-list-row.is-sentence{align-items:flex-start}.structured-list-row input,.structured-list-row textarea{flex:1 1}.structured-list-row textarea{min-height:4.5rem;resize:vertical}.work-item-menu-wrap{position:relative;flex-shrink:0}.work-item-menu-btn{min-width:2rem;padding-inline:var(--space-1_5)}.work-item-menu{position:absolute;right:0;top:calc(100% + var(--space-1));z-index:var(--z-ctx);min-width:6.5rem;padding:var(--space-1);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-md);border:1px solid var(--color-border-soft)}.work-item-menu-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:var(--space-2) var(--space-2_5);border-radius:var(--radius-sm);cursor:pointer;font:inherit;font-size:var(--fs-sm);color:inherit}.work-item-menu-item:hover:not(:disabled){background:var(--color-surface-muted)}.work-item-menu-item:disabled{opacity:.45;cursor:default}.work-item-menu-item.is-danger{color:var(--color-error-text)}.structured-plus{flex-shrink:0;min-width:2rem;font-size:var(--fs-lg);line-height:1;padding-inline:var(--space-2)}.structured-table-wrap{display:flex;flex-direction:column;gap:var(--space-2);overflow-x:auto}.structured-edit-table{width:100%;border-collapse:collapse;font-size:var(--fs-md)}.structured-edit-table td,.structured-edit-table th{border:1px solid var(--color-border-soft);padding:var(--space-1_5);text-align:left}.structured-edit-table th{background:var(--color-surface-muted);font-size:var(--fs-sm);color:var(--color-text-label)}.structured-edit-table input{width:100%;min-width:4rem;border:1px solid transparent;background:transparent;padding:var(--space-1)}.structured-edit-table input:focus{border-color:var(--color-primary);background:var(--color-surface);outline:none}.machine-profile-install-table{table-layout:fixed;width:100%}.machine-profile-install-table .col-date{width:9.5rem}.machine-profile-install-table .col-loc{width:22%}.machine-profile-install-table .col-note{width:auto}.machine-profile-install-table .col-act{width:4.25rem;text-align:center}.machine-profile-install-table input{width:100%;box-sizing:border-box}.purchase-edit-table select{width:100%;min-width:4.5rem;border:1px solid transparent;background:transparent;padding:var(--space-1)}.purchase-edit-table select:focus{border-color:var(--color-primary);background:var(--color-surface);outline:none}.purchase-edit-table .purchase-edit-itemno{min-width:9rem;width:11rem}.purchase-edit-table .purchase-edit-itemno select{min-width:8rem}.purchase-edit-table .purchase-edit-media{min-width:8.5rem;vertical-align:top}.purchase-edit-media-actions{display:flex;flex-wrap:wrap;gap:.25rem;margin:.35rem 0}.purchase-edit-media .purchase-item-thumb{width:3.25rem;height:3.25rem;object-fit:contain;border:1px solid var(--color-border-soft);border-radius:4px;background:var(--color-surface)}.purchase-edit-media .purchase-item-thumb.is-empty{display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);color:var(--color-text-muted)}.structured-inline-fields{display:flex;align-items:center;gap:var(--space-2)}.structured-inline-fields input[type=number]{width:6rem;min-width:0}.structured-inline-fields select{width:auto;min-width:5rem}.structured-checkbox{display:flex;align-items:center;gap:var(--space-2);font-size:var(--fs-md);font-weight:400;color:var(--color-text);cursor:pointer}.structured-check{justify-content:flex-end}.structured-legacy{margin-top:var(--space-2);padding:var(--space-3);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted)}.structured-legacy summary{cursor:pointer;font-size:var(--fs-md);font-weight:700;color:var(--color-text-label)}.structured-legacy-body{margin-top:var(--space-3);opacity:.85}.structured-form textarea{width:100%;resize:vertical;min-height:4.5rem;padding:var(--space-2) var(--space-2_5);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;background:var(--color-surface)}.body-photo-edit-grid{grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr))}.body-photo-edit-grid,.body-photo-picker-grid{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}.body-photo-picker-grid{grid-template-columns:repeat(auto-fill,minmax(5.5rem,1fr))}.body-photo-edit-cell{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.body-photo-edit-caption-input{width:100%;min-width:0;padding:.25rem .4rem;border:1px solid var(--color-border-soft);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-xs);color:var(--color-text);background:var(--color-surface)}.body-photo-edit-caption-input:focus{outline:none;border-color:var(--color-primary)}.body-photo-edit-caption-input:disabled{opacity:.65;cursor:not-allowed}.body-photo-edit-item{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--color-border-soft);background:var(--color-surface-muted)}.body-photo-edit-item img,.body-photo-picker-item img{display:block;width:100%;height:100%;object-fit:cover}.body-photo-edit-remove{position:absolute;top:.2rem;right:.2rem;width:1.5rem;height:1.5rem;border:none;border-radius:999px;background:rgba(15,23,42,.72);color:#fff;font-size:1rem;line-height:1;cursor:pointer}.body-photo-picker-modal{width:min(36rem,96vw);max-height:min(85vh,640px);overflow:auto}.body-photo-picker-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-3)}.body-photo-picker-head h3{margin:0;min-width:0}.body-photo-picker-tabs{flex:0 0 auto;margin:0 0 0 auto}.body-photo-picker-item{position:relative;display:block;width:100%;aspect-ratio:1;padding:0;border:2px solid transparent;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface-muted);cursor:pointer}.body-photo-picker-item.is-selected{border-color:var(--color-primary)}.body-photo-picker-item.is-added{opacity:.55;cursor:default}.body-photo-picker-badge{position:absolute;left:.25rem;bottom:.25rem;padding:.1rem .35rem;border-radius:var(--radius-sm);background:rgba(15,23,42,.75);color:#fff;font-size:var(--fs-xs)}.files-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-2);flex-shrink:0;padding-bottom:var(--space-3);border-bottom:1px solid var(--color-border-soft)}.files-head-text{min-width:0;display:flex;flex-direction:column;gap:2px}.files-head-sub{margin:0;font-size:var(--fs-sm);color:var(--color-text-muted);line-height:1.35}.files-head-actions{display:flex;align-items:center;gap:var(--space-1);flex-shrink:0}.files-list{flex:1 1;min-height:0;overflow-y:auto;gap:var(--space-4);padding-right:2px}.files-group,.files-list{display:flex;flex-direction:column}.files-group{gap:var(--space-2)}.files-group.focused{padding:var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted,rgba(0,0,0,.03))}.files-group.focused .files-group-title{color:var(--color-text-strong)}.files-group-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:0 2px}.files-group-title{margin:0;font-size:var(--fs-sm);font-weight:700;color:var(--color-text-label)}.files-group-count{min-width:1.25rem;padding:0 6px;border-radius:var(--radius-sm);background:var(--color-ghost);color:var(--color-text-muted);font-size:var(--fs-xs);font-weight:700;line-height:1.5;text-align:center}.files-group-list{display:flex;flex-direction:column;gap:var(--space-2)}.files-empty{padding:var(--space-6) var(--space-4);font-size:var(--fs-md)}.files-drop-footer,.files-empty{margin:0;text-align:center;color:var(--color-text-muted)}.files-drop-footer{flex-shrink:0;padding:var(--space-3) var(--space-2);font-size:var(--fs-sm);font-weight:600;border-top:1px dashed var(--color-border);background:var(--color-surface-muted);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.file-card{border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);background:var(--color-surface);padding:var(--space-2_5);display:flex;flex-direction:column;gap:var(--space-2);transition:border-color var(--ease-fast),box-shadow var(--ease-fast)}.file-card:hover{border-color:var(--color-border);box-shadow:var(--shadow-sm)}.file-card.is-open{border-color:var(--color-primary);background:var(--color-primary-hover)}.file-card-main{display:flex;gap:var(--space-2_5);min-width:0;border-radius:var(--radius-md);outline:none}.file-card:not(.no-history) .file-card-main{cursor:pointer}.file-card.no-history .file-card-main{cursor:default}.file-card:not(.no-history) .file-card-main:focus-visible{box-shadow:0 0 0 2px var(--color-primary-soft)}.file-card.no-history:hover{border-color:var(--color-border-soft);box-shadow:none}.file-thumb{flex-shrink:0;width:52px;height:52px;border-radius:var(--radius-md);background:var(--color-surface-muted);border:1px solid var(--color-border-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.file-thumb.is-image{background:var(--color-page)}.file-thumb img{width:100%;height:100%;object-fit:cover;display:block}.file-ext{font-size:var(--fs-xs);font-weight:700;letter-spacing:.02em;color:var(--color-primary-deep);line-height:1}.file-body{min-width:0;flex:1 1;display:flex;flex-direction:column;gap:3px}.file-top{gap:var(--space-2)}.file-title-row,.file-top{display:flex;align-items:center;min-width:0}.file-title-row{gap:var(--space-1_5);flex:1 1}.file-version{flex-shrink:0;font:inherit;font-size:var(--fs-xs);font-weight:700;color:var(--color-primary);background:var(--color-primary-soft);padding:1px 6px;border:0;border-radius:var(--radius-xs);line-height:1.35}button.file-version.is-toggle{cursor:pointer}button.file-version.is-toggle.is-active,button.file-version.is-toggle:hover{background:#bae6fd}.file-card-main.is-clickable{cursor:pointer}.file-icon-btn.is-active{color:var(--color-primary-deep);background:var(--color-primary-soft)}.file-actions{display:inline-flex;align-items:center;gap:2px;flex-shrink:0;margin-left:auto;opacity:0;transition:opacity .12s ease}.file-card.is-open .file-actions,.file-card:focus-within .file-actions,.file-card:hover .file-actions{opacity:1}@media (hover:none){.file-actions{opacity:1}}.file-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);text-decoration:none;cursor:pointer;transition:var(--ease-fast);flex-shrink:0}.file-icon-btn:hover{color:var(--color-primary-deep);background:var(--color-primary-soft)}.file-icon-btn-danger:hover:not(:disabled){color:var(--color-error-text);background:var(--color-error-bg)}.file-icon-btn:disabled{opacity:.45;cursor:not-allowed}.asset-version-delete-modal{width:min(480px,96vw);max-height:min(85vh,640px);overflow:auto}.asset-version-delete-all{display:inline-flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);font-size:var(--fs-sm);font-weight:700;color:var(--color-text-strong);cursor:pointer}.asset-version-delete-all input,.asset-version-delete-row input{width:1rem;height:1rem;accent-color:var(--color-primary);cursor:pointer}.asset-version-delete-list{list-style:none;margin:0 0 var(--space-3);padding:0;overflow-y:auto;max-height:min(40vh,280px);border:1px solid var(--color-border-soft);border-radius:var(--radius-md)}.asset-version-delete-list li+li{border-top:1px solid var(--color-border-soft)}.asset-version-delete-row{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2_5);cursor:pointer;font-size:var(--fs-sm)}.asset-version-delete-row:hover{background:var(--color-primary-hover)}.asset-version-delete-meta{min-width:0;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-version-delete-warn{margin:0 0 var(--space-3);padding:var(--space-2_5);border-radius:var(--radius-md);border:1px solid #fde68a;background:#fffbeb;color:#92400e;font-size:var(--fs-sm);line-height:1.45}.file-name{min-width:0;flex:0 1 auto;margin:0;font-size:var(--fs-md);font-weight:700;color:var(--color-text-ink);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-title-row.has-comment .file-name{max-width:min(46%,14rem)}.file-comment{min-width:3rem;flex:1 1;font-size:var(--fs-sm);font-weight:400;color:var(--color-text);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-comment:before{content:"·";margin-right:var(--space-1_5);color:var(--color-text-faint)}.file-card.is-open .file-name,.file-card:not(.no-history) .file-card-main:hover .file-name{color:var(--color-primary-deep)}.file-meta{margin:0;display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);font-size:var(--fs-xs);color:var(--color-text-muted);line-height:1.4}.file-size{font-weight:700;color:var(--color-text-strong)}.version-drawer{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-1)}.version-drawer-label{font-size:var(--fs-xs);font-weight:700;color:var(--color-text-faint);letter-spacing:.04em}.version-row{padding:var(--space-2);border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border-soft);display:flex;flex-direction:column;gap:var(--space-1)}.version-row-head{display:flex;align-items:center;gap:var(--space-1_5);min-width:0}.version-when{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-1) var(--space-2);color:var(--color-text-muted);margin-left:auto}.version-badge,.version-when{flex-shrink:0;font-size:var(--fs-xs)}.version-badge{color:var(--color-primary);background:var(--color-primary-soft);padding:1px 5px;border-radius:var(--radius-xs);font-weight:700}.version-comment{min-width:0;flex:1 1;margin:0;font-size:var(--fs-sm);color:var(--color-text-muted);line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.version-size{font-size:var(--fs-xs);font-weight:700;color:var(--color-text-strong)}.article-with-files{position:relative;display:flex;flex-direction:column;flex:1 1;min-width:0;min-height:0;overflow:hidden}.article-with-files>.panel-article{flex:1 1;min-height:0;padding-bottom:calc(6.5rem + var(--space-4))}.files-dock-backdrop{position:absolute;inset:0;z-index:calc(var(--z-files-drawer) - 1);border:0;padding:0;margin:0;background:var(--color-overlay);cursor:pointer}.files-dock{position:absolute;left:0;right:0;bottom:0;z-index:var(--z-files-drawer);display:flex;flex-direction:column;max-height:min(70vh,520px);pointer-events:none}.files-dock-bar,.files-dock-panel{pointer-events:auto}.files-dock-bar{order:2;flex-shrink:0;display:flex;align-items:center;gap:var(--space-2);min-height:3.5rem;padding:var(--space-2) var(--space-3);background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -4px 16px rgba(0,0,0,.06)}.files-dock-toggle{display:inline-flex;align-items:center;gap:var(--space-1);flex-shrink:0;padding:var(--space-1_5) var(--space-2_5);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-primary);color:var(--color-text-on-dark);font-size:var(--fs-sm);font-weight:700;cursor:pointer;transition:background var(--ease-fast)}.files-dock-toggle:hover{background:var(--color-primary-deep)}.files-dock-toggle-count{min-width:1.25rem;padding:0 5px;border-radius:var(--radius-sm);background:var(--color-text-on-dark);color:var(--color-primary-deep);font-size:var(--fs-xs);font-weight:700;line-height:1.4;text-align:center}.files-dock-previews{flex:1 1;min-width:0;display:flex;align-items:center;gap:var(--space-1_5);overflow:hidden}.files-dock-empty-hint{font-size:var(--fs-sm);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.files-dock-more{flex-shrink:0;padding:var(--space-1) var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-muted);color:var(--color-text-strong);font-size:var(--fs-sm);font-weight:700;cursor:pointer}.files-dock-more:hover{border-color:var(--color-primary);color:var(--color-primary-deep)}.files-dock-upload{flex-shrink:0}.file-chip{display:inline-flex;align-items:center;gap:var(--space-1_5);max-width:11rem;min-width:0;padding:4px 8px 4px 4px;border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:var(--color-surface-muted);color:inherit;text-decoration:none;transition:border-color var(--ease-fast),background var(--ease-fast)}a.file-chip:hover{border-color:var(--color-primary);background:var(--color-primary-soft)}.file-chip-thumb{flex-shrink:0;width:28px;height:28px;border-radius:var(--radius-sm);background:var(--color-surface);border:1px solid var(--color-border-soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.file-chip-thumb.is-image{background:var(--color-page)}.file-chip-thumb img{width:100%;height:100%;object-fit:cover;display:block}.file-chip-ext{font-size:9px;font-weight:700;color:var(--color-primary-deep);line-height:1}.file-chip-name{min-width:0;font-size:var(--fs-xs);font-weight:600;color:var(--color-text-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.files-dock-panel{order:1;display:flex;flex-direction:column;gap:var(--space-3);min-height:0;flex:1 1;padding:var(--space-3) var(--space-3) 0;background:var(--color-surface);border-top:1px solid var(--color-border);box-shadow:0 -8px 24px rgba(0,0,0,.08);animation:files-dock-rise .28s cubic-bezier(.22,1,.36,1)}@keyframes files-dock-rise{0%{opacity:.5;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.files-dock.dragging .files-dock-bar,.files-dock.dragging .files-dock-panel{outline:2px dashed var(--color-primary);outline-offset:-3px;background:var(--color-primary-hover)}.files-dock.dragging .files-dock-toggle{background:var(--color-primary-deep)}.files-dock.dragging .files-drop-footer{color:var(--color-primary-deep);background:var(--color-primary-soft);border-top-color:var(--color-primary)}.upload-queue-host{position:fixed;left:var(--space-4);bottom:var(--space-4);z-index:var(--z-toast);width:min(26rem,calc(100vw - 2rem));display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.upload-queue-bar,.upload-queue-panel{pointer-events:auto;background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}.upload-queue-panel{max-height:min(18rem,45vh);overflow:auto;padding:var(--space-2) var(--space-3)}.upload-queue-panel-head{display:flex;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2);font-size:var(--fs-sm);color:var(--color-text-muted)}.upload-queue-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.upload-queue-item{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:var(--space-2);row-gap:.2rem;align-items:center}.upload-queue-item-main{display:flex;min-width:0;gap:var(--space-2);align-items:baseline}.upload-queue-item-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);font-weight:600}.upload-queue-item-meta{flex-shrink:0;font-size:var(--fs-sm);color:var(--color-text-muted)}.upload-queue-item-track{grid-column:1;height:4px;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-ghost)}.upload-queue-bar-fill,.upload-queue-item-fill{height:100%;border-radius:inherit;background:var(--color-primary)}.upload-queue-item .upload-queue-cancel{grid-column:2;grid-row:1/span 2}.upload-queue-bar{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2)}.upload-queue-cancel,.upload-queue-expand{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:.2rem;margin:0;border:0;background:transparent;color:var(--color-text-muted);cursor:pointer;font:inherit;font-size:var(--fs-sm)}.upload-queue-expand{width:2rem;height:2rem;border-radius:var(--radius-sm)}.upload-queue-cancel:hover,.upload-queue-expand:hover{color:var(--color-text-strong);background:var(--color-ghost)}.upload-queue-cancel-main{padding:.25rem .45rem;border-radius:var(--radius-sm)}.upload-queue-bar-body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.upload-queue-bar-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.upload-queue-bar-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);font-weight:600}.upload-queue-bar-pct{flex-shrink:0;font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.upload-queue-bar-track{height:6px;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-ghost)}@media (max-width:720px){.upload-queue-host{left:.75rem;right:.75rem;width:auto;bottom:5.5rem}}.upload-progress{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) 0}.upload-progress-row{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2)}.upload-progress-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-sm);color:var(--color-text-strong)}.upload-progress-pct{flex-shrink:0;font-size:var(--fs-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--color-text-muted)}.upload-progress-detail{margin:0;font-size:var(--fs-sm);color:var(--color-text-muted)}.upload-progress-track{height:6px;overflow:hidden;border-radius:var(--radius-sm);background:var(--color-ghost)}.upload-progress-fill{height:100%;border-radius:inherit;background:var(--color-primary);transition:width .12s ease-out}@media (prefers-reduced-motion:reduce){.files-dock-panel{animation:none}.upload-progress-fill{transition:none}}@media (max-width:720px){.file-chip-name{display:none}.file-chip{max-width:none;padding:4px}.files-dock-empty-hint{display:none}}.modal-backdrop{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-4)}.modal{width:min(var(--modal-max-width),92vw);background:var(--color-surface);border-radius:var(--radius-xl);padding:var(--space-5_5);display:flex;flex-direction:column;gap:var(--space-3);box-shadow:var(--shadow-lg)}.modal h3{font-size:var(--fs-xl);color:var(--color-text-ink)}.modal-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.modal-actions-stack{flex-direction:column;align-items:stretch;margin-top:var(--space-1)}.modal-actions-stack .btn{width:100%;justify-content:center}.modal-text{margin:0;font-size:var(--fs-md);color:var(--color-text-muted);line-height:1.5}.leave-confirm-modal{max-width:400px}.check-label{font-size:var(--fs-md);color:var(--color-text)}.machine-qr-dialog{width:min(26rem,92vw);align-items:center;text-align:center}.machine-qr-chooser-root{position:fixed;inset:0;z-index:calc(var(--z-modal) + 20);display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-overlay)}.machine-qr-chooser{width:min(22rem,92vw)}.machine-qr-chooser-options{display:flex;flex-direction:column;gap:var(--space-2)}.machine-qr-chooser-opt{display:flex;flex-direction:column;align-items:flex-start;gap:.25rem;width:100%;margin:0;text-align:left;padding:var(--space-3) var(--space-4);font:inherit;cursor:pointer;background:var(--color-surface);color:var(--color-text-strong);border:1px solid var(--color-border);border-radius:var(--radius-md)}.machine-qr-chooser-opt:hover{background:var(--color-surface-muted);border-color:var(--color-primary)}.machine-qr-chooser-opt strong{font-size:var(--fs-md);font-weight:700;color:var(--color-text-ink)}.machine-qr-chooser-opt span{font-size:var(--fs-sm);font-weight:400;color:var(--color-text-muted)}.machine-qr-screen{flex-direction:column;gap:var(--space-3)}.machine-qr-row,.machine-qr-screen{display:flex;align-items:center;width:100%}.machine-qr-row{flex-direction:row;justify-content:center;gap:var(--space-4)}.machine-qr-name{margin:0;font-size:var(--fs-lg);font-weight:700;color:var(--color-text-strong);text-align:left;line-height:1.35;word-break:keep-all}.machine-qr-img{flex-shrink:0;width:7.5rem;height:7.5rem;object-fit:contain;border:1px solid var(--color-border-soft);border-radius:var(--radius-md);background:#fff}.machine-qr-wordmark-wrap{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .85rem;background:#0f172a;border-radius:var(--radius-md)}.machine-qr-wordmark{display:block;height:1.35rem;width:auto;object-fit:contain}.machine-qr-url{margin:0;max-width:100%;font-size:var(--fs-xs);color:var(--color-text-muted);word-break:break-all;line-height:1.4}.machine-qr-screen .modal-actions{width:100%}.quill-shell{position:relative;overflow:visible;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color var(--ease-write-focus),box-shadow var(--ease-write-focus)}.quill-shell.expanded{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;height:auto;box-shadow:var(--shadow-sm)}.quill-hint-collapse{display:grid;grid-template-rows:1fr;transition:grid-template-rows var(--ease-write-focus),opacity .2s ease;opacity:1}.quill-shell.expanded .quill-hint-collapse{grid-template-rows:0fr;opacity:0;pointer-events:none}.quill-hint-collapse-inner{overflow:hidden;min-height:0}.quill-hint{border-bottom:1px solid var(--color-border-soft);background:var(--color-surface-muted);padding:var(--space-1_5) var(--space-3);font-size:var(--fs-sm);color:var(--color-text-muted)}.quill-hint.quill-uploading{background:var(--color-warn-bg);color:var(--color-text-strong);font-weight:600}.quill-host{min-height:var(--editor-min-height)}.quill-shell.expanded .quill-host{flex:1 1;min-height:0}.quill-expanded .ql-toolbar.ql-snow{flex-shrink:0}.quill-expanded .ql-container.ql-snow{flex:1 1 auto;min-height:0;height:auto!important;overflow-y:auto}.quill-expanded .ql-editor{min-height:100%}.ql-container{font-family:inherit;font-size:var(--fs-lg)}.ql-editor img{max-width:100%;height:auto;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.ql-editor img.kms-img-dragging{opacity:.35;cursor:grabbing}.kms-img-ghost{position:fixed;z-index:var(--z-modal);max-width:160px;max-height:120px;width:auto;height:auto;object-fit:contain;opacity:.85;pointer-events:none;box-shadow:var(--shadow-md);border-radius:var(--radius-sm)}body.kms-img-move-active{cursor:grabbing}body.kms-img-move-active .ql-editor{cursor:copy}.ql-editor .ql-align-center img{display:block;margin-left:auto;margin-right:auto}.ql-editor .ql-align-right img{display:block;margin-left:auto;margin-right:0}.ql-editor .ql-align-left img,.ql-editor p:not([class*=ql-align])>img{display:inline-block}.ql-editor img{touch-action:manipulation;-webkit-touch-callout:none}.ctx-menu{position:fixed;z-index:var(--z-modal);min-width:var(--ctx-menu-min-width);max-height:min(var(--ctx-menu-max-height),calc(100vh - 16px));overflow-x:hidden;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border-soft);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-1) 0;font-size:var(--fs-base)}.ctx-section{padding:var(--space-1_5) var(--space-3);font-size:var(--fs-xs);font-weight:700;color:var(--color-text-faint);text-transform:uppercase}.ctx-item{display:block;width:100%;text-align:left;border:none;background:transparent;padding:var(--space-2) var(--space-3);cursor:pointer;color:var(--color-text)}.ctx-item:hover{background:var(--color-primary-hover);color:var(--color-primary-deep)}.ctx-item.sub{font-size:var(--fs-sm);color:var(--color-text-muted);padding:var(--space-1_5) var(--space-3) var(--space-1_5) var(--space-5)}.ctx-item.sub:hover{background:var(--color-warn-bg);color:var(--color-warn-text)}.ctx-item-danger{color:var(--color-error-text);font-weight:600}.ctx-item-danger:hover{background:var(--color-error-bg);color:var(--color-error-text)}.ctx-divider{border-top:1px solid var(--color-page);margin:var(--space-1) 0}.ctx-icon-menu{display:flex;flex-direction:row;align-items:center;gap:2px;min-width:0;max-height:none;overflow:visible;padding:var(--space-1);border-radius:var(--radius-md)}.ctx-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);cursor:pointer;flex-shrink:0}.ctx-icon-btn:hover{background:var(--color-primary-hover);color:var(--color-primary-deep)}.ctx-icon-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.ctx-icon-sep{width:1px;height:22px;margin:0 var(--space-1);background:var(--color-border-soft);flex-shrink:0}.ctx-icon-btn-danger,.ctx-icon-btn-danger:hover{color:var(--color-error-text)}.ctx-icon-btn-danger:hover{background:var(--color-error-bg)}.article-body table,.kms-table,.ql-editor table{width:100%;border-collapse:collapse;margin:var(--space-3) 0;font-size:var(--fs-base);table-layout:fixed}.article-body td,.article-body th,.ql-editor td,.ql-editor th{border:1px solid var(--color-table-border);padding:var(--space-2) var(--space-2_5);vertical-align:top;min-width:60px}.article-body th,.ql-editor th{background:var(--color-table-head);font-weight:700;color:var(--color-text-ink)}.article-body tr:nth-child(2n) td,.ql-editor tr:nth-child(2n) td{background:var(--color-table-stripe)}button.ql-table{width:28px!important;display:inline-flex!important;align-items:center;justify-content:center}button.ql-table svg{width:18px;height:18px}.quill-memo button.ql-redo,.quill-memo button.ql-undo{width:28px!important;display:inline-flex!important;align-items:center;justify-content:center}.quill-memo button.ql-redo svg,.quill-memo button.ql-undo svg{width:18px;height:18px}.quill-memo .ql-picker.ql-font,.quill-memo .ql-picker.ql-header{display:none!important}.kms-table-wrap{margin:var(--space-3) 0;outline:1px dashed var(--color-border);outline-offset:2px;border-radius:var(--radius-sm)}.kms-table-wrap:focus-within{outline-color:var(--color-primary)}