:root{--bg: #f6efe3;--panel: rgba(255, 252, 246, .9);--panel-muted: rgba(246, 236, 218, .82);--ink: #142a2f;--muted: #5f6e73;--line: #d3c4a8;--accent: #0a7f8c;--accent-strong: #085b6d;--gold: #ba6f19;--danger: #bb4c3a;--shadow: 0 18px 40px rgba(23, 41, 47, .16);color:var(--ink);background:var(--bg);font-family:Avenir Next,Trebuchet MS,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;margin:0;background:radial-gradient(circle at 12% -10%,rgba(255,166,77,.34),transparent 42%),radial-gradient(circle at 92% 6%,rgba(10,127,140,.28),transparent 35%),linear-gradient(155deg,#f6efe3,#f9f1e7 44%,#f4eadf)}button,input,textarea{font:inherit}button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);cursor:pointer;transition:border-color .16s ease,color .16s ease,background .16s ease,transform .16s ease,box-shadow .16s ease}button:hover{border-color:var(--accent);color:var(--accent-strong);transform:translateY(-1px);box-shadow:0 10px 16px #085b6d1f}button:disabled{cursor:wait;opacity:.72}input,textarea{width:100%;border:1px solid var(--line);border-radius:12px;background:#ffffffd1;color:var(--ink);outline:none}input[type=file]{display:none}input{min-height:40px;padding:8px 10px}textarea{min-height:96px;padding:10px;resize:vertical}input:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2f6f6124}.input-error,.input-error:focus{border-color:var(--danger);box-shadow:0 0 0 3px #bb4c3a24}.app-shell{display:grid;min-height:100vh;grid-template-columns:292px 1fr;position:relative}.app-shell:before{content:"";position:fixed;inset:-120px -90px auto auto;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ffb75a80,#ffb75a00);pointer-events:none;z-index:0}.login-page{display:grid;min-height:100vh;place-items:center;background:radial-gradient(circle at 25% 20%,rgba(10,127,140,.2),transparent 40%),radial-gradient(circle at 80% 10%,rgba(255,166,77,.25),transparent 40%),var(--bg);padding:24px}.login-panel{display:grid;width:min(100%,420px);gap:18px;border:1px solid var(--line);border-radius:18px;background:var(--panel);padding:28px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:rise-in .42s ease-out both}.login-status{min-height:20px;margin:0;color:var(--muted);font-size:14px}.sidebar{position:sticky;top:0;display:flex;height:100vh;flex-direction:column;gap:20px;border-right:1px solid var(--line);background:linear-gradient(180deg,#fbf3e4e6,#f5e9d1d1);padding:24px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1}.brand-block h1,.topbar h2{margin:0;line-height:1.08;letter-spacing:0}.brand-block h1{font-family:Bookman Old Style,Palatino Linotype,Georgia,serif;font-size:30px;font-weight:700}.topbar h2{font-family:Bookman Old Style,Palatino Linotype,Georgia,serif;font-size:33px}.eyebrow{margin:0 0 6px;color:var(--gold);font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.source-link{display:inline-flex;align-items:center;gap:6px;margin-top:12px;color:var(--accent-strong);font-weight:700;text-decoration:none}.field{display:grid;gap:7px}.field span{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.compact-field input{min-height:38px}.session-card{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-muted);padding:10px 12px}.session-card span{min-width:0;overflow-wrap:anywhere;font-weight:800}.session-card strong{flex:0 0 auto;color:var(--accent-strong);font-size:12px;letter-spacing:0;text-transform:uppercase}.sheet-list{display:grid;gap:8px;overflow-y:auto}.sheet-list-item{display:grid;grid-template-columns:minmax(0,1fr) 40px;gap:8px;align-items:start;animation:rise-in .36s ease both}.sheet-tab{display:grid;width:100%;min-height:62px;justify-items:start;gap:2px;padding:10px 12px;text-align:left;border-radius:12px}.sheet-delete-button{width:40px;min-height:40px;padding:0}.sheet-tab.active{border-color:var(--accent);background:linear-gradient(135deg,#0a7f8c24,#ffa64d2e)}.sheet-tab span{font-weight:800}.sheet-tab small,.status-row{color:var(--muted)}.sidebar-actions,.toolbar{display:flex;flex-wrap:wrap;gap:10px}.sidebar-actions{margin-top:auto}.sheet-workspace{display:grid;gap:18px;align-content:start;padding:28px;position:relative;z-index:1}.topbar,.status-row,.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.status-row{border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:10px 14px;font-size:14px}.sheet-form{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px}.sheet-section{grid-column:span 6;display:grid;gap:14px;border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:18px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:rise-in .42s ease both}.postcard-section,.campaign-background-section,.identity-section,.wide-section,.notes-section{grid-column:1 / -1}.readonly-text-block{min-height:0;border:1px solid var(--line);border-radius:12px;background:#ffffff8f;color:var(--ink);line-height:1.55;padding:12px}.markdown-content>:first-child{margin-top:0}.markdown-content>:last-child{margin-bottom:0}.markdown-content h1,.markdown-content h2,.markdown-content h3{margin:18px 0 8px;font-family:Bookman Old Style,Palatino Linotype,Georgia,serif;letter-spacing:0;line-height:1.2}.markdown-content h1{font-size:24px}.markdown-content h2{font-size:19px}.markdown-content h3{font-size:16px}.markdown-content p,.markdown-content ul,.markdown-content ol{margin:0 0 12px}.postcard-text p{white-space:pre-line}.markdown-content ul,.markdown-content ol{padding-left:22px}.markdown-content li+li{margin-top:4px}.markdown-content a{color:var(--accent-strong);font-weight:700;overflow-wrap:anywhere}.markdown-content img{display:block;width:min(320px,100%);height:auto;margin:12px 0;border-radius:10px}.markdown-content hr{border:0;border-top:1px solid var(--line);margin:18px 0}.split-section{grid-column:1 / -1;grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading h3{margin:0;font-size:19px;font-family:Bookman Old Style,Palatino Linotype,Georgia,serif;letter-spacing:0}.nested-heading{margin-bottom:10px}.icon-state{width:40px;padding:0}.icon-state.locked{border-color:var(--danger);color:var(--danger)}.field-grid{display:grid;gap:12px}.two-column{grid-template-columns:repeat(2,minmax(0,1fr))}.three-column{grid-template-columns:repeat(3,minmax(0,1fr))}.identity-layout{display:grid;grid-template-columns:minmax(180px,240px) 1fr;gap:18px;align-items:start}.identity-details{display:grid;gap:12px}.backstory-field textarea{min-height:146px}.portrait-upload{display:grid;gap:10px}.portrait-preview{display:grid;width:100%;aspect-ratio:4 / 5;place-items:center;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:linear-gradient(135deg,#0a7f8c1f,#ffa64d2e),#ffffffad}.portrait-preview img{width:100%;height:100%;object-fit:cover}.portrait-placeholder{display:grid;justify-items:center;gap:8px;color:var(--muted);font-weight:800}.upload-button{display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--accent);border-radius:12px;background:linear-gradient(135deg,#0a7f8c,#0d93a2);color:#fff;cursor:pointer;font-weight:800}.ghost-button{background:#ffffff85}.danger-icon{border-color:#bb4c3a61;color:var(--danger)}.ability-section,.extras-section{align-content:start}.ability-section{position:relative;z-index:2}.ability-section>.section-heading{align-items:flex-start;flex-wrap:wrap}.ability-grid{display:grid;align-items:stretch;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.ability-card,.inventory-panel{position:relative;display:grid;gap:12px;border:1px solid var(--line);border-radius:14px;background:#ffffff80;padding:14px}.ability-card{align-content:start;align-items:start;grid-template-rows:auto auto minmax(0,1fr)}.ability-title{display:inline-flex;align-items:center;gap:8px}.info-tooltip{position:relative;z-index:20;display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:999px;background:#ffffffb8;color:var(--accent-strong);cursor:help}.info-tooltip [role=tooltip]{position:absolute;z-index:10000;top:calc(100% + 10px);left:50%;width:min(340px,78vw);padding:12px;border:1px solid var(--line);border-radius:12px;background:#fffaf0;box-shadow:var(--shadow);color:var(--ink);font-size:13px;font-weight:600;line-height:1.45;opacity:0;pointer-events:none;transform:translate(-50%,-4px);transition:opacity .16s ease,transform .16s ease}.info-tooltip:hover,.info-tooltip:focus{z-index:10001}.info-tooltip:hover [role=tooltip],.info-tooltip:focus [role=tooltip]{opacity:1;transform:translate(-50%)}.ability-list{display:grid;align-content:start;align-self:stretch;gap:10px}.section-error,.field-error{margin:0;color:var(--danger);font-size:13px;font-weight:800;line-height:1.35}.section-error{border:1px solid rgba(187,76,58,.32);border-radius:12px;background:#bb4c3a14;padding:10px 12px}.skill-row-block{display:grid;gap:6px}.skill-point-total{width:min(100%,220px)}.skill-point-total input{text-align:center}.skill-point-total.complete input{border-color:#0a7f8c7a;background:#0a7f8c24}.skill-point-total.incomplete input{border-color:#ba6f1980;background:#ba6f191f;color:var(--gold)}.ability-score-row{display:grid;grid-template-columns:minmax(112px,.75fr) minmax(132px,1fr);gap:12px;align-items:end}.empty-hint{margin:0;color:var(--muted);font-size:14px}.readonly-field input,.readonly-input{border-color:#0a7f8c47;background:#0a7f8c14;color:var(--accent-strong);font-weight:900}.ability-total{min-width:0}.insight-points{align-content:end;min-width:0}.insight-point-list{display:flex;min-height:40px;align-items:center;gap:7px;flex-wrap:wrap;border:1px solid rgba(10,127,140,.28);border-radius:12px;background:#0a7f8c14;padding:8px 10px}.insight-point{display:inline-block;width:16px;height:16px;flex:0 0 auto;border:2px solid var(--accent-strong);border-radius:999px;background:transparent}.attribute-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:12px}.attribute-control{display:grid;gap:8px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#ffffffb8}.attribute-control span{color:var(--muted);font-size:13px;font-weight:800}.attribute-control strong{font-size:28px}.entry-table,.entry-list,.notes-section,.table-row{display:grid;gap:10px}.table-header{align-items:end;color:var(--muted);font-size:11px;font-weight:900;line-height:1.2;text-transform:uppercase}.table-header span{overflow-wrap:anywhere}.skill-row{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr) 40px}.inventory-row{grid-template-columns:minmax(140px,1.2fr) 88px minmax(160px,1fr) 40px}.item-panel-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.trait-row{display:grid;gap:8px}.empty-state{display:grid;min-height:100vh;place-items:center;background:var(--bg)}.primary-button{border-color:var(--accent);background:linear-gradient(135deg,#0a7f8c,#0d93a2);color:#fff}.primary-button:hover{color:#fff;background:linear-gradient(135deg,#09717d,#0c8694)}.sheet-list-item:nth-child(1),.sheet-section:nth-child(1){animation-delay:30ms}.sheet-list-item:nth-child(2),.sheet-section:nth-child(2){animation-delay:80ms}.sheet-list-item:nth-child(3),.sheet-section:nth-child(3){animation-delay:.13s}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition-duration:0ms!important}}.workspace-empty{min-height:calc(100vh - 56px);gap:12px}.workspace-empty p{margin:0;color:var(--muted)}@media (max-width: 980px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line)}.sheet-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.attribute-grid,.ability-grid,.item-panel-grid,.identity-layout,.split-section,.three-column,.two-column{grid-template-columns:1fr}.sheet-section{grid-column:1 / -1}}@media (max-width: 640px){.sheet-workspace,.sidebar{padding:18px}.topbar{align-items:flex-start;flex-direction:column}.toolbar,.toolbar button,.sidebar-actions,.sidebar-actions button{width:100%}.skill-row,.inventory-row{grid-template-columns:1fr}.info-tooltip [role=tooltip]{left:auto;right:0;transform:translateY(-4px)}.info-tooltip:hover [role=tooltip],.info-tooltip:focus [role=tooltip]{transform:translate(0)}}@media print{body{background:#fff}.sidebar,.toolbar,.status-row,.source-link{display:none}.app-shell,.sheet-form{display:block}.sheet-workspace{padding:0}.sheet-section{break-inside:avoid;margin-bottom:12px;box-shadow:none}}
