:root{color-scheme:light;font-family:Avenir Next,Segoe UI,Verdana,sans-serif;font-size:16px;line-height:1.4;color:#191a18;background:#eff1ee;--ink: #191a18;--muted: #6b6f67;--paper: #fafbf8;--panel: #f4f6f2;--line: #cdd2c8;--line-strong: #aeb6aa;--green: #2f6b5f;--green-soft: #d9e9e4;--clay: #b34e33;--clay-soft: #f1d8cf;--blue: #315f79;--shadow: 0 16px 40px rgba(32, 36, 31, .13)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100dvh}#app{min-height:100dvh}button,input,select,textarea{font:inherit}button{min-height:38px;border:1px solid var(--line-strong);background:#fff;color:var(--ink);cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}button:not(:disabled):active,.action-link:active,.admin-command-link:active{transform:translateY(1px)}.auth-gate{display:grid;min-height:100dvh;place-items:center;padding:28px;background:linear-gradient(90deg,rgba(49,95,121,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(49,95,121,.08) 1px,transparent 1px),var(--paper);background-size:28px 28px}.auth-gate-content{display:grid;width:min(100%,280px);justify-items:start}.auth-gate-content h1{font-size:2.35rem}.auth-progress{width:100%;height:3px;margin-top:28px;overflow:hidden;background:var(--line)}.auth-progress span{display:block;width:34%;height:100%;background:var(--green);animation:auth-progress-slide 1.15s cubic-bezier(.65,0,.35,1) infinite;will-change:transform}.auth-alert{margin-top:28px;color:var(--clay)}.auth-message{min-height:22px;margin:12px 0 0;color:var(--muted);font-size:.88rem;font-weight:750}.auth-retry{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;padding:0 14px}@keyframes auth-progress-slide{0%{transform:translate(-115%)}to{transform:translate(295%)}}@media(prefers-reduced-motion:reduce){.auth-progress span{width:100%;animation:none}}.app-shell{display:grid;grid-template-columns:56px minmax(0,1fr);min-height:100dvh}.app-shell.sidebar-expanded{grid-template-columns:minmax(250px,320px) minmax(0,1fr)}.diagram-rail{display:flex;flex-direction:column;min-width:0;overflow:hidden;border-right:1px solid var(--line-strong);background:linear-gradient(90deg,rgba(49,95,121,.08) 1px,transparent 1px),var(--panel);background-size:28px 28px}.rail-header,.topbar,.source-pane header,.preview-pane header{display:flex;align-items:center;justify-content:space-between;gap:16px}.rail-header{flex:0 0 auto;min-height:96px;padding:20px;border-bottom:1px solid var(--line)}.diagram-rail:not(.expanded) .rail-header{min-height:56px;justify-content:center;padding:8px}.eyebrow{margin:0 0 4px;color:var(--clay);font-size:.72rem;font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2{margin:0;letter-spacing:0}h1{font-family:Georgia,Times New Roman,serif;font-size:2rem;line-height:1}h2{overflow-wrap:anywhere;font-size:1.35rem;line-height:1.15}.icon-button{display:inline-grid;width:40px;min-width:40px;height:40px;place-items:center;padding:0}.rail-actions{display:flex;gap:8px}.diagram-rail:not(.expanded) .rail-actions{flex-direction:column}.new-diagram-compact{display:inline-grid;width:40px;min-width:40px;height:40px;min-height:40px;place-items:center;padding:0;border-color:var(--green);color:#fff;background:var(--green);box-shadow:0 8px 20px #2f6b5f3d}.diagram-list{display:flex;flex-direction:column;gap:22px;min-height:0;padding:16px;overflow:auto}.new-diagram-button{position:sticky;z-index:2;top:0;display:flex;flex:0 0 auto;min-height:46px;align-items:center;justify-content:center;gap:9px;padding:0 16px;border-color:var(--green);color:#fff;background:var(--green);box-shadow:0 10px 24px #2f6b5f38;font-weight:800}.new-diagram-button:not(:disabled):hover,.new-diagram-button:focus-visible,.new-diagram-compact:not(:disabled):hover,.new-diagram-compact:focus-visible{border-color:#24574d;background:#24574d;outline:2px solid rgba(47,107,95,.24);outline-offset:2px}.diagram-group{display:flex;flex-direction:column;gap:8px;min-width:0}.diagram-group-heading{display:flex;min-height:28px;align-items:center;justify-content:space-between;gap:12px;padding:0 2px 6px;color:var(--muted);border-bottom:1px solid var(--line);font-size:.72rem;font-weight:850;text-transform:uppercase}.diagram-group-heading small{display:inline-grid;min-width:24px;height:20px;place-items:center;color:var(--green);background:var(--green-soft);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.7rem}.diagram-group-empty{margin:0;padding:10px 4px;color:var(--muted);font-size:.78rem}.diagram-row{display:block;width:100%;min-height:62px;padding:12px;text-align:left;background:#ffffffd1}.diagram-row.active{border-color:var(--green);box-shadow:inset 4px 0 0 var(--green)}.diagram-row>span{display:block;min-width:0}.diagram-row strong,.diagram-row small,.title-block span,.source-pane small,.preview-pane small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diagram-row strong{margin-bottom:3px;font-size:.92rem}.diagram-row-meta{display:flex;min-width:0;align-items:baseline;justify-content:space-between;gap:10px}.diagram-row-meta small:first-child{min-width:0}.diagram-row .diagram-row-type{flex:0 0 auto;color:var(--green);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.7rem;font-weight:750}.diagram-row small,.title-block span,.source-pane small,.preview-pane small{color:var(--muted);font-size:.76rem}.workbench{display:grid;grid-template-rows:auto auto minmax(0,1fr);min-width:0;background:linear-gradient(180deg,rgba(179,78,51,.08),transparent 220px),var(--paper)}.topbar{min-height:96px;padding:18px 22px;border-bottom:1px solid var(--line-strong)}.title-block{flex:1 1 260px;min-width:0}.title-heading-row{display:flex;min-width:0;align-items:center;gap:8px}.title-heading-row h2{min-width:0}.title-editor-input{width:min(100%,560px);height:36px;padding:5px 9px;border:1px solid var(--green);border-radius:0;color:var(--ink);background:#fff;font-size:1.1rem;font-weight:750;line-height:1.15;outline:2px solid rgba(47,107,95,.16);outline-offset:1px}.title-edit-button{display:inline-grid;flex:0 0 32px;width:32px;min-width:32px;min-height:32px;height:32px;place-items:center;padding:0;color:var(--muted);background:transparent}.title-edit-button:hover,.title-edit-button:focus-visible{color:var(--green);border-color:var(--green);background:#ffffffb8}.actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.actions button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:98px;padding:0 13px}.actions .icon-only-action{flex:0 0 40px;width:40px;min-width:40px;padding:0}.actions .primary{border-color:var(--green);background:var(--green);color:#fff}.export-menu{position:relative}.export-menu-options{position:absolute;z-index:20;top:calc(100% + 6px);right:0;display:grid;width:150px;padding:6px;border:1px solid var(--line-strong);background:#fff;box-shadow:var(--shadow)}.actions .export-menu-options button{justify-content:flex-start;width:100%;min-width:0;min-height:34px;padding:0 10px;border:0;background:transparent}.actions .export-menu-options button:hover,.actions .export-menu-options button:focus-visible{background:var(--green-soft);outline:none}.status-line{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 22px;color:var(--green);border-bottom:1px solid var(--line);background:#d9e9e4b3;font-size:.86rem;font-weight:750}.status-line.error{color:var(--clay);background:#f1d8cfd6}.workspace-notices{min-height:0}.copy-mode-notice{display:flex;align-items:center;gap:9px;min-height:40px;padding:7px 22px;color:#514d37;border-bottom:1px solid #d4cfb5;background:#f8f7ef;font-size:.8rem;line-height:1.35}.copy-mode-notice>svg{flex:0 0 auto;color:#68734b}.copy-mode-notice strong{color:#343829}.split{display:grid;grid-template-columns:minmax(280px,var(--source-pane-width)) 16px minmax(280px,1fr);gap:0;min-height:0;padding:16px}.split.is-resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}.split-handle{position:relative;z-index:1;display:grid;width:16px;min-width:16px;min-height:0;place-items:center;color:var(--muted);cursor:col-resize;outline:none;touch-action:none}.split-handle:before{position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:1px;content:"";background:var(--line);transform:translate(-50%)}.split-handle svg{box-sizing:content-box;padding:9px 0;background:var(--paper)}.split-handle:hover,.split-handle:focus-visible,.split.is-resizing .split-handle{color:var(--green)}.split-handle:hover:before,.split-handle:focus-visible:before,.split.is-resizing .split-handle:before{width:2px;background:var(--green)}.source-pane,.preview-pane{display:grid;grid-template-rows:42px minmax(0,1fr);min-width:0;min-height:0;border:1px solid var(--line-strong);background:#fff;box-shadow:var(--shadow)}.source-pane header,.preview-pane header{min-width:0;padding:0 14px;border-bottom:1px solid var(--line);background:#f7f8f5;font-size:.84rem;font-weight:850}.source-pane-tools,.theme-select{display:flex;min-width:0;align-items:center}.source-pane-tools{justify-content:flex-end;gap:10px}.theme-select{gap:6px;color:var(--muted);font-size:.72rem;font-weight:750}.theme-select select{width:156px;min-width:0;height:30px;padding:0 8px;border:1px solid var(--line-strong);border-radius:0;outline:none;color:var(--ink);background:#fff;font:inherit;font-weight:700;cursor:pointer}.theme-select select:focus-visible{border-color:var(--green);box-shadow:0 0 0 2px #2f6b5f2e}.theme-select select:disabled{cursor:not-allowed;opacity:.55}textarea{width:100%;min-width:0;height:100%;min-height:420px;padding:16px;resize:none;border:0;outline:none;color:#171917;background:#fbfcf8;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.86rem;line-height:1.55;tab-size:4}.preview-canvas{min-width:0;min-height:420px;overflow:auto;padding:16px;background:linear-gradient(90deg,rgba(25,26,24,.05) 1px,transparent 1px),linear-gradient(0deg,rgba(25,26,24,.05) 1px,transparent 1px),#fff;background-size:22px 22px}.svg-frame{display:inline-block;min-width:100%;padding:18px;background:#ffffffe6}.svg-frame img{display:block;max-width:none;height:auto}.preview-state{display:grid;min-height:260px;place-items:center;color:var(--muted);font-weight:800}.unsaved-dialog-backdrop{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:24px;background:#1418159e;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.unsaved-dialog{width:min(100%,520px);overflow:hidden;border:1px solid var(--line-strong);border-top:5px solid var(--green);border-radius:6px;color:var(--ink);background:var(--paper);box-shadow:0 30px 90px #080c0957}.unsaved-dialog-header{display:grid;grid-template-columns:44px minmax(0,1fr) 36px;align-items:center;gap:12px;padding:20px 20px 16px;border-bottom:1px solid var(--line);background:#f4f7f3}.unsaved-dialog-header .eyebrow{margin-bottom:3px}.unsaved-dialog-header h2{font-size:1.12rem}.unsaved-dialog-icon{display:inline-grid;width:44px;height:44px;place-items:center;color:var(--clay);border:1px solid #d7a494;border-radius:50%;background:var(--clay-soft)}.unsaved-dialog-close{display:inline-grid;width:36px;min-width:36px;height:36px;min-height:36px;place-items:center;padding:0;border:0;background:transparent}.unsaved-dialog-description{margin:0;padding:24px 24px 12px;color:var(--muted);font-size:.92rem;line-height:1.6}.unsaved-dialog-description strong{color:var(--ink)}.unsaved-dialog-error{margin:4px 24px 0;padding:10px 12px;color:#8b321f;border-left:3px solid var(--clay);background:var(--clay-soft);font-size:.82rem;font-weight:750}.unsaved-dialog-actions{display:flex;justify-content:flex-end;gap:8px;padding:20px 24px 24px}.unsaved-dialog-actions button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;padding:0 14px;font-size:.84rem;font-weight:750}.unsaved-dialog-actions .discard{color:#8b321f;border-color:#d7a494;background:#fff8f5}.unsaved-dialog-actions .primary{border-color:var(--green);color:#fff;background:var(--green)}.history-dialog-backdrop{position:fixed;z-index:110;inset:0;display:grid;place-items:center;padding:24px;background:#141815ad;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.history-dialog{display:grid;width:min(100%,1180px);height:min(90dvh,760px);grid-template-rows:auto auto minmax(0,1fr) auto auto;overflow:hidden;border:1px solid var(--line-strong);border-top:5px solid var(--green);border-radius:6px;color:var(--ink);background:var(--paper);box-shadow:0 32px 100px #080c0961}.history-dialog-header,.history-dialog-footer,.history-version-panel>header,.history-diff-panel>header{display:flex;align-items:center;justify-content:space-between;gap:14px}.history-dialog-header{min-height:76px;padding:14px 18px;border-bottom:1px solid var(--line);background:#f4f7f3}.history-dialog-header h2{font-size:1.18rem}.history-dialog-header .eyebrow{max-width:min(70vw,760px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-icon-button,.history-version-actions button{display:inline-grid;width:36px;min-width:36px;height:36px;min-height:36px;place-items:center;padding:0}.history-icon-button{border:0;background:transparent}.history-status{display:flex;min-height:36px;align-items:center;gap:8px;padding:0 18px;color:var(--green);border-bottom:1px solid var(--line);background:var(--green-soft);font-size:.8rem;font-weight:750}.history-status.error{color:#8b321f;background:var(--clay-soft)}.history-dialog-body{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);min-height:0;overflow:hidden}.history-version-panel,.history-diff-panel{display:grid;min-width:0;min-height:0;grid-template-rows:48px minmax(0,1fr);overflow:hidden;background:#fff}.history-version-panel{border-right:1px solid var(--line-strong)}.history-version-panel>header,.history-diff-panel>header{padding:0 14px;border-bottom:1px solid var(--line);background:#f7f8f5;font-size:.82rem;font-weight:850}.history-version-panel>header small,.history-diff-panel>header small{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.7rem}.history-version-list,.history-diff-scroll{min-height:0;overflow:auto}.history-version-row{display:grid;grid-template-columns:minmax(0,1fr) 36px;border-bottom:1px solid var(--line);background:#fff}.history-version-row.active{background:var(--green-soft);box-shadow:inset 3px 0 0 var(--green)}.history-version-select{display:grid;min-width:0;min-height:82px;align-content:center;gap:3px;padding:10px 12px;text-align:left;border:0;background:transparent}.history-version-title{display:flex;min-width:0;align-items:center;gap:6px}.history-version-title svg{flex:0 0 auto;color:var(--green)}.history-version-select strong,.history-version-select small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.history-version-select strong{font-size:.84rem}.history-version-select small{color:var(--muted);font-size:.7rem}.history-version-actions{display:grid;align-content:center;gap:5px;padding-right:6px}.history-version-actions button{border-color:transparent;color:var(--muted);background:transparent}.history-version-actions button:hover,.history-version-actions button:focus-visible{color:var(--ink);border-color:var(--line);background:#fff}.history-state{display:grid;min-height:180px;place-items:center;padding:20px;color:var(--muted);font-size:.8rem;font-weight:750;text-align:center}.history-diff-panel>header>div:first-child{min-width:0}.history-diff-panel>header span,.history-diff-panel>header small{display:block}.history-diff-legend{display:flex;flex:0 0 auto;gap:10px;color:var(--muted);font-size:.68rem;font-weight:700}.history-diff-legend span:before{display:inline-block;width:8px;height:8px;margin-right:4px;content:"";background:var(--line)}.history-diff-legend .added:before{background:#73b79e}.history-diff-legend .removed:before{background:#d78d78}.history-diff-scroll{padding:10px 0;background:#fbfcfa}.diff-row{display:grid;min-width:max-content;min-height:24px;grid-template-columns:30px minmax(0,1fr);align-items:start;color:#30342f;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.76rem;line-height:1.55}.diff-row>span{position:sticky;left:0;display:block;height:100%;padding:3px 7px;color:var(--muted);background:inherit;text-align:center;-webkit-user-select:none;user-select:none}.diff-row code{display:block;min-height:24px;padding:3px 14px 3px 8px;font:inherit;white-space:pre}.diff-row.added{color:#145c45;background:#dff2e9}.diff-row.removed{color:#873621;background:#f8e1d9}.history-delete-confirmation{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:12px 18px;color:#7f301d;border-top:1px solid #d9a99a;background:#fff3ee}.history-delete-confirmation strong,.history-delete-confirmation span{display:block}.history-delete-confirmation strong{font-size:.84rem}.history-delete-confirmation>div>span{margin-top:2px;color:var(--muted);font-size:.72rem}.history-delete-confirmation button,.history-dialog-footer button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:7px;padding:0 14px;font-size:.8rem;font-weight:750}.history-delete-confirmation .danger{color:#fff;border-color:var(--clay);background:var(--clay)}.history-dialog-footer{justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--line-strong);background:#f7f8f5}.history-dialog-footer .primary{color:#fff;border-color:var(--green);background:var(--green)}.shared-page{display:grid;min-width:0;min-height:100dvh;grid-template-rows:auto auto minmax(0,1fr);color:var(--ink);background:linear-gradient(90deg,rgba(49,95,121,.06) 1px,transparent 1px),var(--paper);background-size:28px 28px}.shared-topbar{display:grid;min-width:0;min-height:104px;grid-template-columns:42px minmax(220px,1fr) auto;align-items:center;gap:14px;padding:16px 22px;border-top:5px solid var(--ink);border-bottom:1px solid var(--line-strong);background:#fafbf8f5}.shared-back{display:inline-grid;width:40px;height:40px;place-items:center;color:var(--ink);border:1px solid var(--line-strong);background:#fff}.shared-title{min-width:0}.shared-title h1{overflow:hidden;font-family:Avenir Next,Segoe UI,Verdana,sans-serif;font-size:1.28rem;text-overflow:ellipsis;white-space:nowrap}.shared-title>span{display:block;margin-top:3px;overflow:hidden;color:var(--muted);font-size:.74rem;text-overflow:ellipsis;white-space:nowrap}.shared-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.shared-actions>button,.shared-actions>.export-menu>button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:7px;padding:0 12px}.shared-actions .primary{color:#fff;border-color:var(--green);background:var(--green)}.shared-actions .export-menu-options button{display:flex;width:100%;min-width:0;min-height:34px;align-items:center;justify-content:flex-start;gap:7px;padding:0 10px;border:0;background:transparent}.shared-actions .export-menu-options button:hover,.shared-actions .export-menu-options button:focus-visible{background:var(--green-soft);outline:none}.shared-state{display:grid;width:min(calc(100% - 32px),620px);min-height:320px;place-content:center;justify-items:center;align-self:center;justify-self:center;padding:32px;color:var(--muted);border:1px dashed var(--line-strong);background:#ffffffc2;text-align:center}.shared-state h2{margin-top:14px;color:var(--ink);font-size:1.08rem}.shared-state p{max-width:480px;margin:7px 0 0;font-size:.82rem}.shared-state-error>svg{color:var(--clay)}.shared-state>div{display:flex;align-items:center;gap:12px;margin-top:20px}.shared-state button{display:inline-flex;align-items:center;gap:7px;padding:0 13px}.shared-state-link{color:var(--green);font-size:.82rem;font-weight:750}.shared-unlock{display:grid;width:min(calc(100% - 32px),900px);grid-template-columns:minmax(0,1fr) minmax(300px,380px);align-items:center;gap:56px;align-self:center;justify-self:center;padding:42px;border-top:4px solid var(--green);background:#fffffff0;box-shadow:var(--shadow)}.shared-unlock-copy>svg{margin-bottom:22px;color:var(--green)}.shared-unlock-copy h2{font-size:1.45rem}.shared-unlock-copy>p:last-child{max-width:480px;margin:12px 0 0;color:var(--muted);font-size:.86rem;line-height:1.65}.shared-unlock form{display:grid;gap:14px}.shared-unlock label>span:first-child{display:block;margin-bottom:7px;font-size:.78rem;font-weight:800}.shared-password-control{display:grid;height:44px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:7px;padding:0 10px;border:1px solid var(--line-strong);background:#fff}.shared-password-control:focus-within{border-color:var(--green);box-shadow:0 0 0 2px #2f6b5f24}.shared-password-control svg{color:var(--muted)}.shared-password-control input{width:100%;min-width:0;height:42px;border:0;outline:0}.shared-unlock form>.primary{display:inline-flex;min-height:42px;align-items:center;justify-content:center;gap:7px;color:#fff;border-color:var(--green);background:var(--green);font-weight:750}.shared-viewer{display:grid;min-width:0;min-height:0;grid-template-columns:minmax(320px,40%) minmax(420px,1fr);gap:14px;padding:16px}.shared-viewer .source-pane .plantuml-editor,.shared-viewer .preview-pane .preview-canvas{min-height:560px}.shared-viewer .source-pane .plantuml-editor{cursor:text}.share-dialog-backdrop{position:fixed;z-index:120;inset:0;display:grid;place-items:center;padding:24px;background:#141815ad;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.share-dialog{display:grid;width:min(100%,980px);height:min(88dvh,720px);grid-template-rows:auto minmax(0,1fr);overflow:hidden;border:1px solid var(--line-strong);border-top:5px solid var(--green);border-radius:6px;color:var(--ink);background:var(--paper);box-shadow:0 32px 100px #080c0966}.share-dialog-header{display:grid;min-height:78px;grid-template-columns:44px minmax(0,1fr) 36px;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line-strong);background:#f4f7f3}.share-dialog-header h2{overflow:hidden;font-size:1.12rem;text-overflow:ellipsis;white-space:nowrap}.share-dialog-icon{display:inline-grid;width:44px;height:44px;place-items:center;color:var(--green);border:1px solid var(--line);background:var(--green-soft)}.share-dialog-close{display:inline-grid;width:36px;min-width:36px;height:36px;min-height:36px;place-items:center;padding:0;border:0;background:transparent}.share-dialog-loading{display:flex;min-height:0;align-items:center;justify-content:center;gap:9px;color:var(--muted);font-size:.84rem;font-weight:750}.share-dialog-body{display:grid;min-height:0;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden}.share-section{display:grid;min-width:0;min-height:0;align-content:start;overflow:auto;padding:20px}.share-section+.share-section{border-left:1px solid var(--line-strong)}.share-section>header{display:flex;min-height:52px;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line)}.share-section>header span,.share-section>header small{display:block}.share-section>header span{font-size:.92rem;font-weight:850}.share-section>header small,.share-link-form label small{margin-top:3px;color:var(--muted);font-size:.72rem;line-height:1.45}.share-section>header b{display:inline-grid;min-width:28px;height:24px;place-items:center;color:var(--green);background:var(--green-soft);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem}.share-search{display:grid;min-height:42px;grid-template-columns:20px minmax(0,1fr) 20px;align-items:center;gap:8px;padding:0 10px;border:1px solid var(--line-strong);background:#fff}.share-search:focus-within{border-color:var(--green);box-shadow:0 0 0 2px #2f6b5f24}.share-search svg{color:var(--muted)}.share-search input{width:100%;min-width:0;height:40px;padding:0;border:0;outline:0;background:transparent}.share-candidates{display:grid;max-height:166px;margin-top:8px;overflow:auto;border:1px solid var(--line);background:#fff}.share-candidates button{display:flex;min-width:0;min-height:54px;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;text-align:left;border:0;border-bottom:1px solid var(--line)}.share-candidates button:last-child{border-bottom:0}.share-candidates button:hover,.share-candidates button:focus-visible{background:var(--green-soft)}.share-candidates button>span,.share-member-row>span{min-width:0}.share-candidates strong,.share-candidates small,.share-member-row strong,.share-member-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-candidates strong,.share-member-row strong{font-size:.82rem}.share-candidates small,.share-member-row small{margin-top:2px;color:var(--muted);font-size:.7rem}.share-member-list{display:grid;margin-top:18px;border-top:1px solid var(--line)}.share-member-row{display:grid;min-width:0;min-height:62px;grid-template-columns:minmax(0,1fr) 36px;align-items:center;gap:10px;border-bottom:1px solid var(--line)}.share-member-row button,.share-url-control button{display:inline-grid;width:36px;min-width:36px;height:36px;min-height:36px;place-items:center;padding:0}.share-empty{margin:12px 0 0;padding:12px;color:var(--muted);border:1px dashed var(--line);font-size:.76rem;text-align:center}.share-active-link{margin-bottom:18px;padding:12px;border-left:3px solid var(--green);background:var(--green-soft)}.share-active-link label>span:first-child,.share-link-form label>span:first-child{display:block;margin-bottom:6px;font-size:.74rem;font-weight:800}.share-url-control{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:6px}.share-url-control input,.share-link-form input{width:100%;min-width:0;height:40px;padding:0 10px;border:1px solid var(--line-strong);outline:none;background:#fff}.share-url-control input{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem}.share-active-link p{margin:8px 0 0;color:var(--green);font-size:.7rem;font-weight:750}.share-link-form{display:grid;gap:16px}.share-link-form label{display:block}.share-password-option{display:grid!important;min-height:58px;grid-template-columns:18px 22px minmax(0,1fr);align-items:center;gap:9px;padding:9px 11px;border:1px solid var(--line);background:#fff;cursor:pointer}.share-password-option:has(input:checked){border-color:var(--green);background:var(--green-soft)}.share-password-option input{width:16px;height:16px;margin:0;accent-color:var(--green)}.share-password-option>svg{color:var(--green)}.share-password-option strong,.share-password-option small{display:block}.share-password-option strong{font-size:.78rem}.share-password-option small{margin-top:2px}.share-link-form input:focus{border-color:var(--green);box-shadow:0 0 0 2px #2f6b5f24}.share-inline-error,.share-inline-notice{display:flex;align-items:center;gap:7px;margin:10px 0 0;padding:10px 12px;font-size:.76rem;font-weight:750}.share-inline-error{color:#8b321f;border-left:3px solid var(--clay);background:var(--clay-soft)}.share-inline-notice{color:var(--green);border-left:3px solid var(--green);background:var(--green-soft)}.share-link-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:4px}.share-link-actions button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:7px;padding:0 13px;font-size:.8rem;font-weight:750}.share-link-actions .primary{color:#fff;border-color:var(--green);background:var(--green)}.share-link-actions .share-revoke{color:#8b321f;border-color:#d7a494;background:#fff8f5}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.action-link,.admin-command-link{color:inherit;text-decoration:none}.action-link.icon-button{min-width:40px;border:1px solid var(--line-strong);background:#fff}.admin-shell{min-height:100dvh;color:var(--ink);background:linear-gradient(90deg,rgba(49,95,121,.06) 1px,transparent 1px),#f3f5f3;background-size:32px 32px}.admin-topbar{display:flex;min-height:112px;align-items:center;justify-content:space-between;gap:24px;padding:20px clamp(20px,4vw,56px);border-top:5px solid var(--ink);border-bottom:1px solid var(--line-strong);background:#fafbf8f5}.admin-brand{display:grid;min-width:0;grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:3px 16px}.admin-brand h1{overflow-wrap:anywhere;font-family:Avenir Next,Segoe UI,Verdana,sans-serif;font-size:1.8rem}.admin-brand>span{grid-column:2;color:var(--muted);font-size:.82rem}.admin-marker{display:inline-flex;grid-row:1 / span 2;align-items:center;align-self:stretch;gap:7px;margin:0;padding-right:16px;color:var(--clay);border-right:1px solid var(--line);font-size:.72rem;font-weight:850;text-transform:uppercase}.admin-command-link{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;padding:0 14px;border:1px solid var(--line-strong);background:#fff;font-size:.86rem;font-weight:750}.admin-error{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 clamp(20px,4vw,56px);color:#8b321f;border-bottom:1px solid #d9a99a;background:var(--clay-soft);font-size:.86rem;font-weight:750}.admin-error span{min-width:0;flex:1;overflow-wrap:anywhere}.admin-error button{display:inline-grid;width:34px;min-width:34px;height:34px;min-height:34px;place-items:center;padding:0;border-color:#c47b67;background:#ffffffb8}.admin-content{width:min(100%,1500px);margin:0 auto;padding:28px clamp(16px,3vw,44px) 44px}.admin-section-heading{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--line-strong)}.admin-section-heading h2{font-size:1.2rem}.admin-section-heading>span{display:inline-grid;min-width:40px;height:32px;place-items:center;color:#fff;background:var(--green);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.78rem;font-weight:800}.admin-owner-heading{display:grid;grid-template-columns:40px minmax(0,1fr) auto;justify-content:stretch}.admin-owner-heading small{display:block;margin-top:3px;overflow:hidden;color:var(--muted);font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.admin-owner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:12px}.owner-card{position:relative;display:grid;min-width:0;min-height:150px;grid-template-columns:38px minmax(0,1fr) 18px;grid-template-rows:auto auto 1fr;gap:10px 12px;align-content:start;padding:16px;overflow:hidden;text-align:left;border-color:var(--line);border-radius:4px;background:#fffffff0;box-shadow:0 10px 24px #20241f12;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.owner-card:hover{border-color:var(--green);box-shadow:0 14px 30px #20241f1c;transform:translateY(-2px)}.owner-card-icon{display:inline-grid;width:38px;height:38px;grid-row:1 / span 2;place-items:center;color:var(--green);border:1px solid var(--line);background:var(--green-soft)}.owner-card-main{min-width:0}.owner-card-main strong,.owner-card-main small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.owner-card-main strong{font-size:.95rem}.owner-card-main small,.owner-card-date{color:var(--muted);font-size:.75rem}.owner-card-count{display:inline-flex;grid-column:2 / span 2;align-items:center;gap:6px;color:var(--blue);font-size:.78rem;font-weight:750}.owner-card-count b{font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.92rem}.owner-card-date{grid-column:2 / span 2;align-self:end}.owner-card-arrow{grid-column:3;grid-row:1;color:var(--muted)}.owner-card-skeleton{pointer-events:none}.owner-card-skeleton span,.admin-list-loading span,.admin-viewer-loading span{display:block;height:14px;border-radius:2px;background:linear-gradient(90deg,#e1e5df 20%,#f7f8f5,#e1e5df 80%);background-size:220% 100%;animation:admin-skeleton 1.25s ease-in-out infinite}.owner-card-skeleton span:first-child{width:38px;height:38px}.owner-card-skeleton span:nth-child(2){width:72%}.owner-card-skeleton span:nth-child(3){width:46%}.admin-empty-state,.admin-viewer-empty{display:grid;min-height:280px;place-content:center;justify-items:center;padding:28px;color:var(--muted);border:1px dashed var(--line-strong);background:#ffffff9e;text-align:center}.admin-empty-state h2,.admin-viewer-empty h2{margin-top:12px;color:var(--ink);font-size:1rem}.admin-empty-state p,.admin-viewer-empty p{max-width:420px;margin:6px 0 0;font-size:.82rem}.admin-detail-grid{display:grid;grid-template-columns:minmax(240px,320px) minmax(0,1fr);gap:14px;min-height:calc(100dvh - 250px)}.admin-list-column{display:grid;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0}.admin-diagram-panel{display:grid;min-width:0;min-height:0;grid-template-rows:44px minmax(0,1fr);overflow:hidden;border:1px solid var(--line-strong);background:#fff}.admin-diagram-panel>header,.admin-viewer-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-bottom:1px solid var(--line);background:#f7f8f5;font-size:.82rem;font-weight:850}.admin-diagram-panel>header small{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace}.admin-diagram-list{min-height:0;overflow:auto}.admin-diagram-list button{display:block;width:100%;min-height:64px;padding:12px;text-align:left;border:0;border-bottom:1px solid var(--line);background:#fff}.admin-diagram-list button>span{display:block;min-width:0}.admin-diagram-list button:hover,.admin-diagram-list button.active{background:var(--green-soft)}.admin-diagram-list button.active{box-shadow:inset 3px 0 0 var(--green)}.admin-diagram-list strong,.admin-diagram-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-diagram-list strong{font-size:.84rem}.admin-diagram-list small{margin-top:4px;color:var(--muted);font-size:.72rem}.admin-list-empty{display:grid;place-items:center;color:var(--muted);font-size:.8rem}.admin-list-loading{display:grid;align-content:start;gap:20px;padding:20px 14px}.admin-list-loading span:nth-child(2n){width:70%}.admin-viewer{display:grid;min-width:0;min-height:0;grid-template-rows:auto auto minmax(0,1fr);border:1px solid var(--line-strong);background:#fff}.admin-viewer-header{min-height:64px;padding:10px 14px}.admin-viewer-header h2{font-size:1rem}.admin-viewer-header>span{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.72rem}.admin-viewer-split{display:grid;grid-template-columns:minmax(300px,38%) minmax(0,1fr);gap:12px;min-height:0;padding:12px}.admin-source-pane .plantuml-editor,.admin-preview-pane .preview-canvas{min-height:470px}.admin-source-pane .plantuml-editor{cursor:text}.admin-inline-error{display:flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;color:#8b321f;border-bottom:1px solid #d9a99a;background:var(--clay-soft);font-size:.78rem}.admin-viewer-loading{align-content:center;gap:18px;padding:24px}.admin-viewer-loading span:last-child{width:66%}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:14px}.admin-pagination button{display:inline-grid;width:36px;min-width:36px;height:36px;min-height:36px;place-items:center;padding:0}.admin-pagination span{color:var(--muted);font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.75rem}@keyframes admin-skeleton{0%{background-position:120% 0}to{background-position:-120% 0}}@media(max-width:980px){.app-shell,.app-shell.sidebar-expanded{grid-template-columns:1fr}.diagram-rail{max-height:320px;border-right:0;border-bottom:1px solid var(--line-strong)}.split{grid-template-columns:1fr}.split-handle{display:none}.admin-detail-grid,.admin-viewer-split{grid-template-columns:1fr}.admin-diagram-panel{max-height:340px}.share-dialog-body{grid-template-columns:1fr;overflow:auto}.share-section{overflow:visible}.share-section+.share-section{border-top:1px solid var(--line-strong);border-left:0}.shared-topbar{grid-template-columns:42px minmax(0,1fr)}.shared-actions{grid-column:1 / -1}.shared-viewer{grid-template-columns:1fr}.shared-unlock{gap:28px}}@media(max-width:620px){.topbar,.rail-header{align-items:stretch;flex-direction:column}.diagram-rail.expanded .rail-header{min-height:150px}.diagram-rail:not(.expanded) .rail-header{align-items:center}.actions{justify-content:stretch}.actions button{flex:1 1 120px}.split{padding:10px}.source-pane-tools{gap:6px}.theme-select>span{display:none}.theme-select select{width:138px}.share-dialog-backdrop{padding:10px}.share-dialog{height:min(94dvh,720px)}.share-link-actions{align-items:stretch;flex-direction:column-reverse}.shared-topbar{align-items:start;padding:14px 12px}.shared-actions{display:grid;grid-template-columns:1fr 1fr}.shared-actions>button,.shared-actions>.export-menu,.shared-actions>.export-menu>button{width:100%}.shared-unlock{width:calc(100% - 20px);grid-template-columns:1fr;padding:26px 20px}.shared-viewer{padding:10px}.unsaved-dialog-backdrop{align-items:end;padding:12px}.unsaved-dialog-header{grid-template-columns:40px minmax(0,1fr) 36px;padding:16px}.unsaved-dialog-icon{width:40px;height:40px}.unsaved-dialog-description{padding:20px 18px 10px}.unsaved-dialog-error{margin-right:18px;margin-left:18px}.unsaved-dialog-actions{display:grid;grid-template-columns:1fr;padding:16px 18px 20px}.unsaved-dialog-actions .primary{grid-row:1}.admin-topbar{align-items:stretch;flex-direction:column;gap:16px}.admin-brand{grid-template-columns:1fr}.admin-marker{grid-row:auto;padding:0 0 8px;border-right:0;border-bottom:1px solid var(--line)}.admin-brand>span{grid-column:auto}.admin-command-link{width:100%}.admin-content{padding:18px 10px 28px}.admin-owner-heading{grid-template-columns:40px minmax(0,1fr)}.admin-owner-heading>span{display:none}.admin-viewer-split{padding:8px}}@media(max-width:760px){.history-dialog-backdrop{align-items:end;padding:10px}.history-dialog{height:calc(100dvh - 20px)}.history-dialog-body{grid-template-columns:1fr;grid-template-rows:minmax(180px,34dvh) minmax(220px,1fr)}.history-version-panel{border-right:0;border-bottom:1px solid var(--line-strong)}.history-delete-confirmation{grid-template-columns:1fr 1fr}.history-delete-confirmation>div{grid-column:1 / -1}}@media(max-width:520px){.history-dialog-header{min-height:66px;padding:10px 12px}.history-diff-legend{display:none}.history-dialog-footer{display:grid;grid-template-columns:1fr;padding:10px 12px}.history-dialog-footer .primary{grid-row:1}}.source-editor-area{display:flex;flex-direction:column;min-width:0;min-height:0}.source-editor-area>.plantuml-editor{flex:1}.source-validation{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:8px 12px;border-top:1px solid var(--line);font-size:.75rem;background:#f7f8f5}.source-validation button{padding:5px 9px;border:1px solid var(--line-strong);background:#fff;color:var(--green);font-size:inherit;cursor:pointer}.source-validation button:disabled{opacity:.55;cursor:default}.source-validation .diagnostic-link{color:#a92b1c;text-decoration:underline}.source-diagnostic{color:#a92b1c;overflow-wrap:anywhere}
