/* Shared campaign workspace, in the character's nation palette. */
.campaign-page{max-width:1500px}.campaign-seal{font:120px/1 Georgia,serif;color:var(--accent);opacity:.16;align-self:center}.campaign-account{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:12px 0;border-bottom:1px solid var(--line,#d8cbd0);margin-bottom:22px}.muted{opacity:.55}.campaign-switch{display:flex;align-items:flex-end;gap:16px;margin-bottom:26px}.campaign-switch>.campaign-field{flex:1;max-width:520px;margin:0}.button-row,.cloud-bar-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.campaign-field{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700;color:var(--ink,#412333);margin:0 0 16px;min-width:0}.campaign-field input,.campaign-field select,.campaign-field textarea,.campaign-search input{font:14px/1.55 inherit;background:#fffdfc;color:#30242b;width:100%;border:1px solid #cfc2c5;border-radius:3px;padding:10px 12px;box-sizing:border-box;min-width:0;outline-offset:3px}.campaign-field textarea{font-size:14px;resize:vertical;min-height:90px}.campaign-field input[type=file]{font-size:12px}.campaign-field input:focus,.campaign-field textarea:focus,.campaign-field select:focus{outline:2px solid var(--accent);border-color:transparent}.campaign-banner{padding:26px 30px;background:var(--nav-bg,#301425);color:#f9f2f2;display:flex;justify-content:space-between;gap:24px;align-items:center;position:relative;overflow:hidden}.campaign-banner h2{font:32px/1.15 Georgia,serif;margin:9px 0 10px}.campaign-banner p{white-space:pre-wrap;font-size:13px;line-height:1.6;max-width:650px;margin:0;opacity:.8;overflow-wrap:anywhere}.campaign-banner .eyebrow{color:#e0c7cf}.campaign-banner .site-action{background:#fffcfa;color:var(--ink);border-color:transparent}.campaign-banner .button-row{flex-shrink:0;max-width:290px}.campaign-tabs{display:flex;gap:0;border-bottom:1px solid #cdbfc4;overflow-x:auto;margin:20px 0 26px;scrollbar-width:thin}.campaign-tabs>button{background:transparent;border:0;border-radius:0;padding:16px 18px;color:#73656c;font-size:12px;font-weight:700;white-space:nowrap;min-width:0;border-bottom:3px solid transparent;flex:1}.campaign-tabs>button[aria-selected=true]{border-color:var(--accent);color:var(--accent)}.campaign-panel{min-height:350px}.campaign-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:0 0 32px}.campaign-stats button{text-align:left;display:flex;align-items:center;gap:18px;border:1px solid #d8cbd0;background:#fffdfb;color:var(--ink);padding:22px 24px;box-shadow:none}.campaign-stats strong{font:40px/1 Georgia,serif;color:var(--accent)}.campaign-stats span{font-size:12px}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:25px 0 17px}.section-heading h2{font:24px/1.2 Georgia,serif;margin:0;color:var(--ink)}.section-heading .hint{margin-bottom:0}.campaign-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.campaign-card{background:#fffdfb;border:1px solid #dbced2;padding:24px;min-width:0;overflow-wrap:anywhere;box-shadow:0 4px 12px #39252a03}.campaign-card h3{font:25px/1.25 Georgia,serif;color:var(--ink);margin:16px 0 10px}.card-kicker{display:flex;justify-content:space-between;gap:10px;font-size:10px;letter-spacing:.03em;color:#7c6f75}.card-kicker>span:first-child{color:var(--accent);font-weight:700}.card-prose{font-size:13px;line-height:1.7;color:#64565e;white-space:pre-wrap;overflow-wrap:anywhere}.scene-readiness{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e6dce0;margin-top:20px;padding-top:15px;font-size:11px}.scene-readiness>span{color:#7d6c75}.readiness-dots{display:flex;flex-wrap:wrap;gap:5px;margin:13px 0 19px}.readiness-dots span{border:1px solid #cfc2c5;border-radius:50%;width:27px;height:27px;display:grid;place-content:center;font-size:10px;color:#9a8991;background:#f2eeeb}.readiness-dots .ready{background:var(--accent);color:white;border-color:var(--accent)}.campaign-callout{padding:22px 26px;margin:26px 0;background:#e8e0dc55;border-left:2px solid var(--accent)}.campaign-callout h3{font-size:13px;margin:0 0 8px}.campaign-callout p{font-size:13px;line-height:1.65;color:#75626d;margin:0}.campaign-empty{text-align:center;border:1px dashed #cfc0c7;padding:42px 22px;margin:18px 0;color:#7b6772}.campaign-empty h2{font:26px/1.2 Georgia,serif;color:var(--ink);margin:8px 0 10px}.campaign-empty p{font-size:13px;line-height:1.7;max-width:460px;margin:0 auto 18px}.empty-glyph{font-size:40px;color:var(--accent);opacity:.55}.campaign-welcome{padding:44px;background:linear-gradient(110deg,#fffdfb,#eee4e8);border:1px solid #dacbd1;max-width:930px}.campaign-welcome h2{font:40px/1.15 Georgia,serif;color:var(--ink);margin:20px 0}.campaign-welcome p{max-width:600px;font-size:15px;line-height:1.75;color:#7c6572}.welcome-features{display:flex;gap:20px;flex-wrap:wrap;padding:22px 0 30px;font-size:11px;color:var(--accent);font-weight:700}.campaign-search{display:flex;flex-direction:column;gap:7px;font-size:11px;font-weight:700;color:#76606d;margin-bottom:18px;flex:1}.filter-row{display:flex;gap:18px;align-items:end}.filter-row .campaign-field{width:190px}.member-list,.cloud-library-list{border-top:1px solid #d4c5cd;margin:16px 0}.member-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 0;border-bottom:1px solid #ddd1d7;font-size:12px;min-width:0}.member-row strong{font-size:13px}.member-row small{display:block;color:#88707e;margin-top:5px;font-size:11px}.member-avatar{flex:0 0 37px;height:37px;display:grid;place-items:center;background:var(--nav-bg);color:#fff;font:20px Georgia,serif}.member-row>.member-avatar+div{flex:1}.invite-history{margin:22px 0;font-size:12px}.invite-history summary{cursor:pointer;font-weight:700}.character-shared{display:flex;gap:20px;align-items:start}.character-shared>img{width:80px;height:110px;object-fit:cover}.shared-monogram{flex:0 0 65px;height:85px;background:#eee7e4;color:var(--accent);display:grid;place-items:center;font:40px Georgia,serif}.character-shared h3{font-size:24px;margin-top:10px}.character-shared p{font-size:12px;line-height:1.5}.project-progress{height:8px;background:#e6dcd8;margin:22px 0 10px;overflow:hidden}.project-progress>span{display:block;height:100%;background:var(--accent);transition:width .2s}.progress-caption{display:flex;justify-content:space-between;font-size:11px;color:#86717c;margin-bottom:20px}.progress-caption strong{font-size:17px;color:var(--accent);font-variant-numeric:tabular-nums}.verified-label{font-size:10px;letter-spacing:.02em;color:#486b61;font-weight:700;display:inline-block}.shared-roll .roll-history-entry{border:0;background:none;padding:6px 0}.shared-roll .roll-history-top{display:none}.roll-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:17px;border-top:1px solid #e1d5dc;padding-top:13px}.roll-foot code{font-size:10px;color:#9c858f}.cloud-sheet-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #d7c7d0;background:#fffdfb;padding:11px 15px;margin:0 0 14px;font-size:11px;color:#7c6371}.cloud-sheet-bar>span{display:flex;align-items:center;gap:7px}.cloud-sheet-bar .site-action{font-size:10px;min-height:30px;padding:7px 10px}.cloud-dot{height:6px;width:6px;background:#aa97a1;border-radius:50%;flex-shrink:0}.cloud-dot.connected{background:#5d8172}.cloud-error{border-color:#b06058;background:#fff2e8;color:#8a4034}.cloud-library{margin-top:45px}.campaign-dialog{background:#fcf8f4;color:#48303f;border:1px solid #d3c2cc;width:min(720px,calc(100vw - 32px));max-height:85dvh;padding:26px;box-sizing:border-box;box-shadow:0 30px 120px #20041344;border-radius:6px;overflow:auto;overscroll-behavior:contain}.campaign-dialog::backdrop{background:#2512218c;backdrop-filter:blur(2px)}.campaign-dialog p{font-size:13px;line-height:1.65}.campaign-dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:22px}.campaign-dialog-head h2{font:28px/1.25 Georgia,serif;margin:0}.campaign-dialog-head .dialog-close{border:0;background:transparent;color:var(--accent);padding:3px 8px;font-size:25px;box-shadow:none}.dialog-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;border-top:1px solid #ded0d7;padding-top:18px}.form-grid,.visibility-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 15px}.campaign-check{display:flex;gap:8px;align-items:center;font-size:12px}.campaign-check input{width:auto!important;accent-color:var(--accent)}.form-error{background:#fae8e4;border-left:3px solid #a53d4e;color:#8a2638;padding:12px;font-size:12px!important;white-space:pre-wrap}.campaign-dialog [hidden],.campaign-page [hidden],#serverRollOutput[hidden]{display:none!important}.campaign-dialog .site-action,.campaign-page .site-action{white-space:normal;text-align:center;line-height:1.4;cursor:pointer}.campaign-dialog button:disabled,.campaign-page button:disabled{opacity:.5;cursor:wait}.roll-context-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.roll-context-grid .campaign-field{margin:8px 0 0}.roll-context-grid select{font-size:12px;padding:7px}#cloudRollControls{border-bottom:1px solid #dbcbd4;margin-bottom:16px;padding-bottom:8px}.server-roll-output{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px;background:#eaf0e8;color:#46664c;font-size:11px;margin:12px 0}.viewer-portrait{display:block;width:140px;max-height:200px;object-fit:cover;margin:18px 0}.sheet-viewer-section{border-top:1px solid #d8c8d0;padding:14px 0}.sheet-viewer-section summary{font:21px Georgia,serif;cursor:pointer}.viewer-field{display:grid;grid-template-columns:minmax(110px,.65fr) 1fr;gap:15px;padding:8px 0;border-bottom:1px solid #e9dee4;font-size:11px;align-items:start}.viewer-field>span{color:#887080;font-weight:700}.viewer-field p{margin:0;font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere}.locked-section{display:flex;justify-content:space-between;padding:15px 0;border-top:1px solid #d8c8d0;font:19px Georgia,serif}.locked-section span{font:11px Arial,sans-serif;color:#9b8693}.stress-viewer{display:flex;flex-wrap:wrap;gap:15px;padding:16px 0;font-size:11px}
@media(max-width:1100px){.campaign-stats button{gap:10px;padding:18px 12px}.campaign-stats strong{font-size:32px}.campaign-grid{grid-template-columns:1fr}.campaign-banner{align-items:start;flex-direction:column}.campaign-banner .button-row{max-width:none}.campaign-tabs>button{padding:14px 11px}.campaign-switch{align-items:stretch;flex-direction:column}.campaign-seal{font-size:90px}.cloud-sheet-bar{flex-wrap:wrap}.campaign-stats span{font-size:10px}}
@media(max-width:600px){.campaign-seal{display:none}.campaign-banner{padding:24px 20px}.campaign-banner h2{font-size:30px}.campaign-welcome{padding:28px 22px}.campaign-welcome h2{font-size:33px}.campaign-stats{gap:7px}.campaign-stats button{flex-direction:column;align-items:start;padding:16px 11px;gap:9px}.campaign-stats strong{font-size:32px}.campaign-card{padding:20px}.campaign-tabs{margin:14px 0 20px}.campaign-tabs>button{font-size:11px;padding:14px 10px}.section-heading{align-items:start;flex-wrap:wrap}.section-heading h2{font-size:23px}.member-row{flex-wrap:wrap}.member-row .button-row{margin-left:auto}.filter-row{flex-direction:column;align-items:stretch;gap:0}.filter-row .campaign-field{width:auto}.campaign-dialog{padding:20px;width:calc(100vw - 20px)}.campaign-dialog-head h2{font-size:25px}.visibility-grid{gap:0 10px}.visibility-grid select{font-size:12px;padding:9px 6px}.roll-context-grid{grid-template-columns:1fr}.viewer-field{grid-template-columns:1fr;gap:4px}.cloud-bar-actions{gap:6px}.campaign-callout{padding:20px}.character-shared{gap:14px}.character-shared>img{width:65px;height:90px}.scene-readiness{flex-wrap:wrap}.welcome-features{flex-direction:column;gap:12px}.campaign-account>.site-action{padding:7px 9px}}
.campaign-banner h2{color:#fff8f4}.campaign-banner p{color:#e7dbdc}.campaign-dialog .hint{font-size:11px;line-height:1.6}
@media(max-width:1100px){.campaign-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));overflow:visible}.campaign-tabs>button{white-space:normal;line-height:1.4;padding:13px 6px}}
.roll-result-label{font-size:16px;font-weight:700;color:var(--accent);margin:18px 0 4px}
.object-track{display:block;width:100%;height:36px;margin:12px 0 0;padding:0;accent-color:var(--accent);cursor:pointer;touch-action:pan-y}
.object-track:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.object-adjust fieldset{border:0;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:10px;align-items:end;min-width:0}
.object-adjust .campaign-field{flex:1 1 130px;margin:0;max-width:210px}.object-adjust input{font-size:16px;min-height:44px}
.object-adjust button{min-height:44px}.object-track:disabled{cursor:wait;opacity:.6}.track-error{margin-bottom:0}
.campaign-danger{border-top:1px solid var(--line,#d8cbd0);padding-top:18px;margin-top:24px}
.campaign-danger .site-action,.campaign-dialog .site-action.danger-action{color:#932b39;border:1px solid #b6515c;background:#fff4f3}
.campaign-dialog .site-action.primary.danger-action{background:#932b39;color:white;border-color:#932b39}
