:root{--bg:#f8f8f7;--paper:#fff;--ink:#252b29;--muted:#626b66;--line:#dfe3df;--accent:#315a4b;--tint:#edf1ee;--danger:#a33c30;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);font-synthesis:none;font-size:15px;line-height:1.5}*{box-sizing:border-box}body{margin:0}button,input,textarea,select{font:inherit}button{min-height:44px;padding:10px 20px;border:1px solid transparent;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;font-weight:500;transition:background .15s ease}button:hover{background:#244337}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:#fff;color:var(--ink);border-color:var(--line)}button.secondary:hover,button.quiet:hover{background:var(--tint)}button.quiet{background:transparent;color:var(--muted);padding:8px 12px}button.danger{background:#fff;color:var(--danger);border-color:#e2c8c3}a{color:var(--accent);text-underline-offset:4px}input,textarea,select{display:block;width:100%;border:1px solid #bbc4be;border-radius:8px;padding:12px;background:#fff;color:var(--ink)}input[type=checkbox]{display:inline-block;width:18px;height:18px;accent-color:var(--accent);flex-shrink:0}textarea{resize:vertical}label{display:block;font-size:14px;font-weight:500;margin-bottom:20px}label input,label textarea,label select{margin-top:8px}label.inline{display:flex;align-items:center;gap:12px;font-weight:400}label.inline input{margin:0}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[contenteditable]:focus-visible{outline:3px solid #639b80;outline-offset:3px}h1,h2,h3,p{margin:0 0 16px}h1{font-family:Georgia,"Times New Roman",serif;font-size:40px;line-height:1.15;font-weight:400}h2{font-size:24px;line-height:1.3;font-weight:500}h3{font-size:17px;font-weight:500}strong{font-weight:600}small{display:block;color:var(--muted);font-size:13px;line-height:1.5}svg{width:20px;height:20px;flex-shrink:0}.muted,.footnote{color:var(--muted)}.eyebrow{color:var(--muted);font-size:13px;margin-bottom:12px}.shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.shell>aside{border-right:1px solid var(--line);padding:40px 20px 24px;background:#f1f3f1;display:flex;flex-direction:column}.brand{font-family:Georgia,serif;font-size:24px;margin:0 12px 48px}.brand span{display:block;font-family:inherit;font-size:14px;color:var(--muted);margin-top:4px}.nav{display:flex;align-items:center;gap:12px;width:100%;background:transparent;color:var(--muted);text-align:left;margin:4px 0;padding:12px;min-height:48px}.nav:hover,.nav.active{background:#e3e8e3;color:var(--ink)}.count{margin-left:auto;font-size:12px;font-variant-numeric:tabular-nums}.side-bottom{margin-top:auto;padding:48px 12px 0;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.side-bottom a{font-size:13px}.workspace{min-width:0}.top{height:80px;border-bottom:1px solid var(--line);padding:0 40px;display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px}.mode{display:flex;align-items:center;gap:8px}.mode:before{content:'';width:6px;height:6px;border-radius:50%;background:#68786d}#view{padding:40px;max-width:1600px;margin:auto}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:40px}.page-heading h1{margin-bottom:12px}.page-heading p:last-child{margin:0}.page-heading>button{flex-shrink:0}.paper{background:#fff;border:1px solid var(--line);border-radius:12px;padding:40px}.letter-list{border-top:1px solid var(--line)}.letter-row{display:grid;grid-template-columns:112px minmax(0,1fr) 144px 24px;gap:24px;align-items:center;width:100%;text-align:left;color:var(--ink);background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:28px 8px}.letter-row:hover{background:var(--tint)}.letter-row strong{font-family:Georgia,serif;font-size:24px;font-weight:400}.letter-row small{margin-top:8px;overflow-wrap:anywhere}.letter-number{font-size:13px;color:var(--muted);border-left:3px solid #91a797;padding-left:12px}.row-meta{font-size:13px;color:var(--muted)}.footnote{font-size:13px;margin-top:24px}.empty{text-align:center;padding:64px 24px;color:var(--muted)}.empty h2{color:var(--ink);font-family:Georgia,serif;font-size:28px}.empty p{line-height:1.8}.envelope-mark{display:flex;align-items:center;justify-content:center;width:216px;height:112px;margin:0 auto 32px;border:1px solid #b7c6bb;background:#edf2ec;color:var(--accent);font-family:Georgia,serif;font-size:18px;transform:rotate(-3deg)}.search{max-width:400px}.record-row,.history-row{display:flex;gap:24px;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--line)}.record-row strong,.history-row strong{font-size:17px}.row-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 256px;gap:32px}.editor label{color:var(--muted)}.title-input{font-family:Georgia,serif;font-size:28px;padding:8px 0;border:0;border-bottom:1px solid var(--line);border-radius:0}.editor-side{padding:8px 0!important;background:none!important;border:0!important;display:flex;flex-direction:column;gap:40px}.editor-side button{display:block;width:100%;margin:12px 0}.editor-side h2{font-family:Georgia,serif;font-size:26px;font-weight:400}.editor-side p{font-size:14px}.editor-tip{border-top:1px solid var(--line);padding-top:24px;color:var(--muted)}#save-state{font-size:13px;color:var(--muted)}.letter-meta{display:flex;justify-content:space-between;gap:16px;border-top:3px solid var(--accent);padding-top:16px;margin-bottom:32px;font-size:14px;color:var(--accent)}.letter-meta span{color:var(--muted);font-size:13px}.editor-fields{margin-top:24px}.block{border-top:1px solid var(--line);margin-top:24px;padding-top:12px}.block-tools{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px}.block-tools button{font-size:12px;padding:4px 8px;min-height:36px}.format-toolbar{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0;background:var(--bg);border-radius:8px}.format-toolbar button{font-size:13px;min-height:36px}.rich-text{min-height:160px;padding:16px;border:1px solid var(--line);border-radius:8px;line-height:1.8}.rich-text h2{font-size:24px}.rich-text p{margin-bottom:16px}.edit-image{max-width:100%;max-height:360px;object-fit:contain;margin:16px 0}.add-block{display:flex;gap:8px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.add-block button{font-size:13px;padding:8px 12px}.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.checklist{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:8px;padding:8px;margin-bottom:24px}.checklist label{display:flex;align-items:center;gap:12px;margin:0;padding:8px;font-weight:400}.checklist input{margin:0}.checklist p{padding:12px;margin:0}dialog{border:1px solid var(--line);border-radius:16px;max-width:880px;width:calc(100% - 32px);padding:32px;max-height:92vh;color:var(--ink);background:var(--bg)}dialog::backdrop{background:#192d2566}.dialog-head{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:13px;margin-bottom:24px}.dialog-head button{min-height:36px}dialog h2{font-family:Georgia,serif;font-size:28px}.recipient-review{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:16px 0}.recipient-review p{margin:0;overflow-wrap:anywhere}.mail-preview{white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.7 inherit;background:#fff;border:1px solid var(--line);padding:24px}.approval{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.approval p{font-size:13px;margin-top:16px}details{border-bottom:1px solid var(--line);padding:16px 0}summary{cursor:pointer;font-weight:500;min-height:32px}.letter{background:#fff;max-width:840px;padding:48px;margin:auto;overflow-wrap:anywhere}.letter h1{font-size:44px;margin-bottom:24px}.letter h2{font-family:Georgia,serif;font-size:28px;margin-top:32px}.letter .lead{font-size:19px;color:var(--muted);line-height:1.6}.letter .prose{font-size:17px;line-height:1.85;margin-top:32px}.letter figure{margin:32px 0}.letter img{width:100%;height:auto;border-radius:8px}.letter figcaption{font-size:13px;color:var(--muted);margin-top:8px}.letter footer{border-top:1px solid var(--line);padding-top:24px;margin-top:40px}.route{background:#eef2ed;padding:24px;margin-top:32px;border-radius:12px;color:var(--accent)}.route svg{display:block;width:100%;height:auto}.route h2{margin:0}.route .muted{font-size:13px}.reader{max-width:920px;margin:48px auto;padding:0 24px}.reader>.paper{max-width:760px;margin:auto}.reader .letter{border:1px solid var(--line);border-radius:12px}.print-controls{text-align:center;padding:24px}.login{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr}.login-note{padding:64px 12%;background:#e9eee8;display:flex;flex-direction:column;justify-content:center}.login-note .brand{margin:0 0 64px;font-size:22px}.login-note h1{font-size:60px;line-height:1.15;margin-bottom:32px}.login-note p{color:var(--muted);font-size:17px}.signature{border-top:1px solid #b7c6bb;max-width:280px;padding-top:24px;margin-top:48px;color:var(--accent)}.login-form{width:100%;max-width:480px;align-self:center;justify-self:center;padding:40px}.login-form h2{font-family:Georgia,serif;font-size:32px;margin-bottom:32px}.login-form button{width:100%}.login-form footer{margin-top:40px;font-size:13px;color:var(--muted)}.settings h2{margin-top:32px}.settings h2:first-child{margin-top:0}.settings #new-user{margin-top:16px}.error,#login-error{color:var(--danger)}.audit{font-size:13px;overflow-wrap:anywhere}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100% - 32px);padding:16px 24px;border-radius:8px;background:#263e32;color:#fff;z-index:100;display:none}#toast.visible{display:block}code{overflow-wrap:anywhere}@media(max-width:1100px){.shell{grid-template-columns:208px minmax(0,1fr)}#view{padding:32px 24px}.top{padding:0 24px}.editor-layout{grid-template-columns:1fr}.editor-side{display:grid;grid-template-columns:1fr 1fr;gap:32px}.letter-row{grid-template-columns:88px minmax(0,1fr) 24px}.row-meta{display:none}.paper.editor{padding:32px}.login-note h1{font-size:48px}}@media(max-width:760px){.shell{display:block}.shell>aside{padding:16px;border-right:0;border-bottom:1px solid var(--line)}.brand{margin:0 0 16px;font-size:22px}.brand span{display:inline;margin-left:12px}.shell nav{display:flex;overflow:auto;gap:4px}.nav{width:auto;white-space:nowrap;padding:8px 12px;min-height:44px;font-size:13px}.nav svg,.count{display:none}.side-bottom{padding:8px 0 0;flex-direction:row;gap:12px;align-items:center;font-size:12px}.side-bottom small,.side-bottom a{display:none}.side-bottom button{min-height:36px;font-size:12px}.top{height:56px;font-size:12px;padding:0 20px}#view{padding:28px 20px}.page-heading{align-items:flex-start;flex-direction:column;gap:20px;margin-bottom:28px}.page-heading h1{font-size:36px}.letter-row{grid-template-columns:minmax(0,1fr) 24px;padding:24px 0;gap:12px}.letter-number{grid-column:1/-1}.letter-row strong{font-size:24px}.record-row,.history-row{align-items:flex-start;gap:16px}.history-row{flex-direction:column}.row-actions{justify-content:flex-start}.editor-layout{display:flex;flex-direction:column;gap:24px}.editor-side{display:block}.editor-tip{display:none}.paper,.paper.editor{padding:24px}.editor{margin:0 -8px}.title-input{font-size:25px}.letter-meta{flex-direction:column;gap:4px;margin-bottom:24px}.block-tools button{padding:4px;font-size:11px}.format-toolbar button{padding:8px;font-size:12px}.recipient-review{grid-template-columns:1fr}dialog{padding:20px}.letter{padding:24px}.letter h1{font-size:34px}.reader{padding:0 12px;margin:24px auto}.login{display:block}.login-note{padding:32px}.login-note h1{font-size:36px;margin-bottom:16px}.login-note h1 br{display:none}.login-note .brand{margin-bottom:24px}.login-note p,.signature{display:none}.login-form{padding:32px;max-width:100%}.login-form h2{font-size:28px}}@media print{body{background:#fff}.print-controls,.dialog-head,.top,nav,.side-bottom{display:none}.reader{padding:0;margin:0;max-width:none}.reader .letter{border:0;padding:0}.letter{max-width:none}.route,figure{break-inside:avoid}a{color:inherit}}
