@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=DM+Sans:opsz,wght@9..40,400;9..40,500;9..40,600;9..40,700&family=JetBrains+Mono:wght@400;500&display=swap");:root{--bg:#f7f4ee;--surface:#fff;--surface-subtle:#fafaf8;--border:#e4ddd4;--border-strong:#cec5bb;--text:#1c1917;--text-2:#6b5e53;--text-3:#9c8e82;--green:#166534;--green-hover:#14532d;--green-light:#dcfce7;--green-text:#15803d;--amber:#92400e;--amber-light:#fef3c7;--amber-text:#b45309;--red:#9b1c1c;--red-light:#fee2e2;--red-text:#dc2626;--blue-light:#dbeafe;--blue-text:#1d4ed8;--radius:6px;--radius-lg:10px;--shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);--shadow:0 4px 6px rgba(0,0,0,.05),0 2px 4px rgba(0,0,0,.04);--shadow-lg:0 10px 25px rgba(0,0,0,.08),0 4px 10px rgba(0,0,0,.05);--nav-h:60px;--font-display:"Playfair Display",Georgia,serif;--font-body:"DM Sans",system-ui,-apple-system,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{font-size:16px}body,html{max-width:100vw;overflow-x:hidden}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.55}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;height:var(--nav-h);background:var(--surface);border-bottom:1px solid var(--border)}.nav-inner{max-width:1200px;margin:0 auto;padding:0 1.5rem;height:100%;display:flex;align-items:center;justify-content:space-between;gap:1rem}.nav-logo{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text);text-decoration:none;letter-spacing:-.02em;white-space:nowrap;flex-shrink:0}.nav-links{display:flex;align-items:center;gap:.15rem;flex:1 1;margin-left:1.25rem}.nav-link{font-size:.875rem;font-weight:500;color:var(--text-2);text-decoration:none;padding:.35rem .7rem;border-radius:var(--radius);transition:background .13s,color .13s;white-space:nowrap}.nav-link:hover{background:var(--bg);color:var(--text)}.nav-link-active,.nav-link-active:hover{color:var(--green);background:var(--green-light)}.nav-link-new{color:var(--green);border:1px solid;padding:.3rem .7rem;margin-left:.35rem;border-radius:var(--radius);text-decoration:none;font-size:.875rem;font-weight:500;white-space:nowrap;transition:background .13s,color .13s}.nav-link-new:hover{background:var(--green);color:#fff;border-color:var(--green)}.nav-user{display:flex;align-items:center;gap:.65rem;flex-shrink:0}.nav-user-name{font-size:.875rem;font-weight:500;color:var(--text-2)}.badge{font-size:.7rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;padding:.15rem .45rem;border-radius:999px}.badge-admin{background:var(--green-light);color:var(--green-text)}.badge-user{background:var(--border);color:var(--text-2)}.page{max-width:1100px}.page,.page-sm{margin:0 auto;padding:2rem 1.5rem}.page-sm{max-width:760px}.page-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.75rem;gap:1rem}.page-header-left{display:flex;flex-direction:column;gap:.2rem}.page-header-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.page-title{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--text);letter-spacing:-.03em}.page-subtitle{font-size:.875rem;color:var(--text-2);margin-top:.2rem}.btn{display:inline-flex;align-items:center;gap:.35rem;padding:.45rem .9rem;border-radius:var(--radius);font-size:.875rem;font-weight:500;font-family:inherit;cursor:pointer;border:1px solid transparent;transition:all .13s;text-decoration:none;white-space:nowrap;line-height:1.4}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--green);color:#fff;border-color:var(--green)}.btn-primary:hover:not(:disabled){background:var(--green-hover);border-color:var(--green-hover)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover:not(:disabled){background:var(--bg)}.btn-ghost{background:transparent;color:var(--text-2);border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--bg);color:var(--text)}.btn-danger{background:var(--surface);color:var(--red-text);border-color:#fca5a5}.btn-danger:hover:not(:disabled){background:var(--red-light);border-color:var(--red-text)}.btn-success{background:var(--green-light);color:var(--green-text);border-color:var(--green-light)}.btn-success:hover:not(:disabled){background:var(--green);color:#fff;border-color:var(--green)}.btn-sm{padding:.28rem .6rem;font-size:.8rem}.btn-lg{padding:.6rem 1.4rem;font-size:1rem}.input{width:100%;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-family:inherit;font-size:.9rem;color:var(--text);background:var(--surface);transition:border-color .13s,box-shadow .13s;outline:none;-webkit-appearance:none}.input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(22,101,52,.1)}.input::placeholder{color:var(--text-3)}.input-error{border-color:var(--red-text)}.input-error:focus{box-shadow:0 0 0 3px rgba(220,38,38,.1)}.label{display:flex;flex-direction:column;gap:.35rem}.label-text{font-size:.8125rem;font-weight:600;color:var(--text-2);letter-spacing:.01em}.form-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem}.form-row{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.85rem}.form-actions{display:flex;gap:.5rem;margin-top:1rem;align-items:center}.form-hint{font-size:.8rem;color:var(--text-3);margin-top:.25rem}@media (max-width:600px){.form-grid{grid-template-columns:1fr}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem}.card-raised{box-shadow:var(--shadow)}.section{margin-bottom:1.75rem}.section-title{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.table-wrap{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--surface)}.table{width:100%;border-collapse:collapse;font-size:.875rem}.table th{padding:.6rem 1rem;text-align:left;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);background:var(--surface-subtle)}.table td,.table th{border-bottom:1px solid var(--border)}.table td{padding:.75rem 1rem;color:var(--text);vertical-align:middle}.table tbody tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--surface-subtle)}.td-actions{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.status{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:600;padding:.2rem .55rem;border-radius:999px;white-space:nowrap}.status:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}.status-draft{background:var(--bg);color:var(--text-2)}.status-sending{background:var(--amber-light);color:var(--amber-text)}.status-completed{background:var(--green-light);color:var(--green-text)}.status-error{background:var(--red-light);color:var(--red-text)}.alert{padding:.65rem 1rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem}.alert-error{background:var(--red-light);color:var(--red);border:1px solid #fca5a5}.alert-success{background:var(--green-light);color:var(--green);border:1px solid #86efac}.alert-warning{background:var(--amber-light);color:var(--amber);border:1px solid #fcd34d}.stats-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));grid-gap:1rem;gap:1rem}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.25rem 1rem;text-align:center}.stat-label{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-3);margin-bottom:.4rem}.stat-value{font-size:2.25rem;font-weight:700;line-height:1;color:var(--text);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat-sub{font-size:.85rem;color:var(--text-2);margin-top:.3rem}.stat-red{color:var(--red-text)!important}.upload-zone{border:2px dashed var(--border-strong);border-radius:var(--radius-lg);padding:1.25rem;background:var(--surface-subtle);transition:border-color .13s,background .13s}.upload-zone:hover{border-color:var(--green);background:var(--green-light)}.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:1rem}.login-card{width:100%;max-width:400px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:2.5rem 2.25rem;box-shadow:var(--shadow-lg)}.login-logo{font-family:var(--font-display);font-size:1.6rem;font-weight:700;color:var(--text);text-align:center;margin-bottom:.35rem;letter-spacing:-.02em}.login-subtitle{font-size:.875rem;color:var(--text-2);text-align:center;margin-bottom:2rem}.login-form{display:flex;flex-direction:column;gap:.85rem}.home-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:1rem;gap:1rem;margin-top:1.5rem}.home-card{display:block;padding:1.5rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);text-decoration:none;color:var(--text);transition:border-color .13s,box-shadow .13s}.home-card:hover{border-color:var(--green);box-shadow:var(--shadow)}.home-card-title{font-weight:600;font-size:1rem;margin-bottom:.3rem}.home-card-desc{font-size:.875rem;color:var(--text-2)}.mono{font-family:var(--font-mono);font-size:.85em}.empty{text-align:center;padding:3rem 1rem;color:var(--text-2);font-size:.9rem}.divider{height:1px;background:var(--border);margin:1.5rem 0}.filter-bar{display:flex;align-items:center;gap:.5rem;margin-bottom:1.25rem}.filter-label{font-size:.8125rem;font-weight:600}.filter-label,.text-muted{color:var(--text-2)}.text-sm{font-size:.875rem}.text-xs{font-size:.8rem}.text-error{color:var(--red-text);font-size:.875rem}.text-success{color:var(--green-text)}.text-warning{color:var(--amber-text)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-3)}.ProseMirror{outline:none;min-height:180px;padding:.75rem;font-family:var(--font-body);font-size:.9rem;color:var(--text);line-height:1.6}.ProseMirror p{margin-bottom:.5em}.ProseMirror a{color:var(--green)}.ProseMirror ol,.ProseMirror ul{padding-left:1.5em;margin-bottom:.5em}