*{box-sizing:border-box}html,body,#app{height:100%;margin:0}body{overflow:auto;font-family:Libre Baskerville,Baskerville,Baskerville Old Face,Hoefler Text,Garamond,Times New Roman,serif}.home.app{display:grid;grid-template-rows:auto 1fr;height:100dvh}.home .header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;padding:8px 12px;border-bottom:1px solid #e5e7eb;background:#fff}.home .title{margin:0;font-size:14px;font-weight:600;color:#111827}.home .titleLink{text-decoration:none;color:inherit}.home .list{padding:12px;overflow-y:auto;min-height:0}.home .create{margin-left:auto;height:28px;padding:0 10px;border-radius:8px;border:1px solid #d1d5db;background:#fff}.home .campaigns{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.home .row{padding:10px 12px;border:1px solid #e5e7eb;border-radius:8px;background:#fff;display:grid;grid-template-columns:1fr auto;align-items:center}.home .link{text-decoration:none;color:#111827}.home .trash{height:28px;width:28px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid #e5e7eb;background:#fff;cursor:pointer}.home .empty{color:#6b7280}.home .overlay{position:fixed;inset:0;background:#0006;display:grid;place-items:center;padding:16px;z-index:50}.home .modal{width:100%;max-width:420px;background:#fff;border-radius:12px;border:1px solid #e5e7eb;box-shadow:0 10px 30px #0000001f;padding:16px}.home .modalTitle{margin:0 0 12px;font-size:16px;font-weight:600;color:#111827}.home .modalInput{width:100%;max-width:100%;box-sizing:border-box;height:36px;padding:0 10px;border-radius:8px;border:1px solid #d1d5db;outline:none;font:inherit}.home .modalActions{margin-top:12px;display:flex;gap:8px;justify-content:flex-end}.home .modalButton{height:32px;padding:0 12px;border-radius:8px;border:1px solid #d1d5db;background:#fff;font:inherit}.home .modalButton.primary{color:#fff;background:#111827;border-color:#111827}.play.app{display:grid;grid-template-rows:auto 1fr auto;height:100dvh}.play .main{position:relative;height:100%;display:grid;grid-template-columns:1fr 320px;gap:var(--mainGap, 12px);padding:0;overflow:hidden}.play .resizer{position:absolute;top:0;bottom:0;right:var(--sidebarWidth);width:10px;cursor:col-resize;background:transparent}.play .resizer:after{content:"";position:absolute;top:0;bottom:0;right:4px;width:2px;background:#e5e7eb}.play .resizer.active:after{background:#9ca3af}.play .header{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid #e5e7eb;background:#fff}.collapseSidebar{margin-left:auto;height:28px;padding:0 10px;border-radius:8px;border:1px solid #d1d5db;background:#fff;font:inherit}.play .title{margin:0;font-size:14px;font-weight:600;color:#111827}.play .titleLink{text-decoration:none;color:inherit}.play .chat{display:grid;grid-template-rows:1fr auto;overflow:hidden;min-height:0}.play .spinner{position:sticky;top:0;height:4px;background:linear-gradient(90deg,#93c5fd,#60a5fa,#2563eb);background-size:200% 100%;animation:shimmer 1.2s infinite linear;border-radius:0 0 2px 2px;z-index:5}@keyframes shimmer{0%{background-position:0% 0}to{background-position:-200% 0}}.play .messages{min-height:0;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth}.play .message{display:flex;align-items:flex-start;gap:10px;max-width:900px}.play .message.user{align-self:flex-end}.play .avatar{width:28px;height:28px}.play .content{background:#f3f4f6;padding:10px 12px;border-radius:10px;line-height:1.4;white-space:pre-wrap}.play .message.user .content{background:#dbeafe}.play .contentHeader{display:flex;gap:8px;justify-content:flex-end}.play .diceToggle{border:1px solid #d1d5db;border-radius:6px;background:#fff;color:#456ec5;cursor:pointer;padding:5px;font-size:20px}.dice{font-size:14px}.dice.d4{color:#b124b5}.dice.d6{color:#972424}.dice.d8{color:#5c9724}.dice.d10{color:#c5801a}.dice.d12{color:#1aa18e}.dice.d20{color:#456ec5}.diceIcons{margin:0 5px}.rollResult{font-weight:700;color:#111827}.play .rolls{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;margin-bottom:6px}.play .rollsList{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px;color:#374151}.rollAmount{margin-left:5px}.play .composer{position:sticky;bottom:0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;gap:8px;padding:0 12px 12px;border-top:1px solid #e5e7eb;background:#fff}.play .composerHandle{grid-column:1 / -1;height:10px;cursor:row-resize;background:transparent;position:relative}.play .composerHandle:after{content:"";position:absolute;left:50%;top:3px;transform:translate(-50%);width:40px;height:4px;border-radius:2px;background:#e5e7eb}.play .composerHandle.disabled{cursor:not-allowed}.play .input{width:100%;padding:12px 14px;border:1px solid #d1d5db;border-radius:10px;outline:none;font:inherit;resize:none;height:100%;min-height:44px}.play .input:focus{border-color:#60a5fa;box-shadow:0 0 0 3px #60a5fa40}.play .send{padding:0 14px;border-radius:10px;background:#111827;color:#fff;border:none;font:inherit}.play .send:disabled{opacity:.6}.rollReason{margin-left:5px}.sidebar{border-left:1px solid #e5e7eb;background:#fafafa;overflow:visible}.filesHeader{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;border-bottom:1px solid #e5e7eb;background:inherit;z-index:1}.filesTitle{font-size:12px;font-weight:600;color:#111827}.addFile{height:24px;width:24px;border-radius:6px;border:1px solid #d1d5db;background:#fff;cursor:pointer}.filesList{overflow-y:auto;min-height:0;padding:8px;display:flex;flex-direction:column;gap:8px}.filePanel{border:1px solid #e5e7eb;border-radius:8px;background:#fff}.fileHeader{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px;padding:8px 10px}.toggle{height:24px;width:24px;border:none;background:transparent;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.caret{display:inline-block;transition:transform .15s ease-in-out}.caret.open{transform:rotate(90deg)}.fileName{flex:1;min-width:0;border:none;outline:none;background:transparent;font-size:12px;font-weight:600;color:#111827;font:inherit}.deleteFile{height:24px;width:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;border:1px solid #e5e7eb;background:#fff;cursor:pointer}.fileBody{padding:8px 10px 10px}.fileContent{width:100%;max-width:100%;box-sizing:border-box;min-height:120px;padding:8px;border:1px solid #d1d5db;border-radius:6px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:12px}.highlight-npc{font-weight:bolder;color:#97246b}.highlight-place{font-weight:bolder;color:#4a9724}.highlight-weapon,.highlight-item{font-weight:bolder;color:#246f97}.highlight-spell{font-weight:bolder;color:#972424}.highlight-character{font-weight:bolder;color:#c5801a}.highlight-skill{font-weight:bolder;color:#1aa18e}.tabsHeader{padding:8px}.tabButton{padding:6px 10px;border:1px solid #d1d5db;background:#fafafa;cursor:pointer}.tabButton.active{background:#d3d1d1}.tabBody{padding:8px;overflow-y:auto;min-height:0}.cq{container-type:inline-size;width:100%;margin:0 auto}.cq .row{display:flex;flex-wrap:wrap;margin-left:-.5rem;margin-right:-.5rem}.cq .row>[class*=col-]{padding-left:.5rem;padding-right:.5rem;flex:0 0 auto}.cq .row>.col{flex:1 0 0;width:auto}.cq .row>.col-auto{flex:0 0 auto;width:auto}.cq .row>[class*=col-]{width:100%}.cq .row>.col-xs-1{width:8.3333%}.cq .row>.col-xs-2{width:16.6667%}.cq .row>.col-xs-3{width:25%}.cq .row>.col-xs-4{width:33.3333%}.cq .row>.col-xs-5{width:41.6667%}.cq .row>.col-xs-6{width:50%}.cq .row>.col-xs-7{width:58.3333%}.cq .row>.col-xs-8{width:66.6667%}.cq .row>.col-xs-9{width:75%}.cq .row>.col-xs-10{width:83.3333%}.cq .row>.col-xs-11{width:91.6667%}.cq .row>.col-xs-12{width:100%}.cq .row>.offset-xs-1{margin-left:8.3333%}.cq .row>.offset-xs-2{margin-left:16.6667%}.cq .row>.offset-xs-3{margin-left:25%}.cq .row>.offset-xs-4{margin-left:33.3333%}.cq .row>.offset-xs-5{margin-left:41.6667%}.cq .row>.offset-xs-6{margin-left:50%}.cq .row>.offset-xs-7{margin-left:58.3333%}.cq .row>.offset-xs-8{margin-left:66.6667%}.cq .row>.offset-xs-9{margin-left:75%}.cq .row>.offset-xs-10{margin-left:83.3333%}.cq .row>.offset-xs-11{margin-left:91.6667%}@container (min-width: 576px){.cq .row>.col-sm-1{width:8.3333%}.cq .row>.col-sm-2{width:16.6667%}.cq .row>.col-sm-3{width:25%}.cq .row>.col-sm-4{width:33.3333%}.cq .row>.col-sm-5{width:41.6667%}.cq .row>.col-sm-6{width:50%}.cq .row>.col-sm-7{width:58.3333%}.cq .row>.col-sm-8{width:66.6667%}.cq .row>.col-sm-9{width:75%}.cq .row>.col-sm-10{width:83.3333%}.cq .row>.col-sm-11{width:91.6667%}.cq .row>.col-sm-12{width:100%}.cq .row>.offset-sm-1{margin-left:8.3333%}.cq .row>.offset-sm-2{margin-left:16.6667%}.cq .row>.offset-sm-3{margin-left:25%}.cq .row>.offset-sm-4{margin-left:33.3333%}.cq .row>.offset-sm-5{margin-left:41.6667%}.cq .row>.offset-sm-6{margin-left:50%}.cq .row>.offset-sm-7{margin-left:58.3333%}.cq .row>.offset-sm-8{margin-left:66.6667%}.cq .row>.offset-sm-9{margin-left:75%}.cq .row>.offset-sm-10{margin-left:83.3333%}.cq .row>.offset-sm-11{margin-left:91.6667%}}@container (min-width: 768px){.cq .row>.col-md-1{width:8.3333%}.cq .row>.col-md-2{width:16.6667%}.cq .row>.col-md-3{width:25%}.cq .row>.col-md-4{width:33.3333%}.cq .row>.col-md-5{width:41.6667%}.cq .row>.col-md-6{width:50%}.cq .row>.col-md-7{width:58.3333%}.cq .row>.col-md-8{width:66.6667%}.cq .row>.col-md-9{width:75%}.cq .row>.col-md-10{width:83.3333%}.cq .row>.col-md-11{width:91.6667%}.cq .row>.col-md-12{width:100%}.cq .row>.offset-md-1{margin-left:8.3333%}.cq .row>.offset-md-2{margin-left:16.6667%}.cq .row>.offset-md-3{margin-left:25%}.cq .row>.offset-md-4{margin-left:33.3333%}.cq .row>.offset-md-5{margin-left:41.6667%}.cq .row>.offset-md-6{margin-left:50%}.cq .row>.offset-md-7{margin-left:58.3333%}.cq .row>.offset-md-8{margin-left:66.6667%}.cq .row>.offset-md-9{margin-left:75%}.cq .row>.offset-md-10{margin-left:83.3333%}.cq .row>.offset-md-11{margin-left:91.6667%}}@container (min-width: 992px){.cq .row>.col-lg-1{width:8.3333%}.cq .row>.col-lg-2{width:16.6667%}.cq .row>.col-lg-3{width:25%}.cq .row>.col-lg-4{width:33.3333%}.cq .row>.col-lg-5{width:41.6667%}.cq .row>.col-lg-6{width:50%}.cq .row>.col-lg-7{width:58.3333%}.cq .row>.col-lg-8{width:66.6667%}.cq .row>.col-lg-9{width:75%}.cq .row>.col-lg-10{width:83.3333%}.cq .row>.col-lg-11{width:91.6667%}.cq .row>.col-lg-12{width:100%}.cq .row>.offset-lg-1{margin-left:8.3333%}.cq .row>.offset-lg-2{margin-left:16.6667%}.cq .row>.offset-lg-3{margin-left:25%}.cq .row>.offset-lg-4{margin-left:33.3333%}.cq .row>.offset-lg-5{margin-left:41.6667%}.cq .row>.offset-lg-6{margin-left:50%}.cq .row>.offset-lg-7{margin-left:58.3333%}.cq .row>.offset-lg-8{margin-left:66.6667%}.cq .row>.offset-lg-9{margin-left:75%}.cq .row>.offset-lg-10{margin-left:83.3333%}.cq .row>.offset-lg-11{margin-left:91.6667%}}@container (min-width: 1200px){.cq .row>.col-xl-1{width:8.3333%}.cq .row>.col-xl-2{width:16.6667%}.cq .row>.col-xl-3{width:25%}.cq .row>.col-xl-4{width:33.3333%}.cq .row>.col-xl-5{width:41.6667%}.cq .row>.col-xl-6{width:50%}.cq .row>.col-xl-7{width:58.3333%}.cq .row>.col-xl-8{width:66.6667%}.cq .row>.col-xl-9{width:75%}.cq .row>.col-xl-10{width:83.3333%}.cq .row>.col-xl-11{width:91.6667%}.cq .row>.col-xl-12{width:100%}.cq .row>.offset-xl-1{margin-left:8.3333%}.cq .row>.offset-xl-2{margin-left:16.6667%}.cq .row>.offset-xl-3{margin-left:25%}.cq .row>.offset-xl-4{margin-left:33.3333%}.cq .row>.offset-xl-5{margin-left:41.6667%}.cq .row>.offset-xl-6{margin-left:50%}.cq .row>.offset-xl-7{margin-left:58.3333%}.cq .row>.offset-xl-8{margin-left:66.6667%}.cq .row>.offset-xl-9{margin-left:75%}.cq .row>.offset-xl-10{margin-left:83.3333%}.cq .row>.offset-xl-11{margin-left:91.6667%}}.panel{margin-top:30px;margin-bottom:30px}.form-group label{font-weight:700}span.modified,input.modified,.modified input,.modified textarea,.tabButton.modified,.list-group-item.modified{outline:2px solid #8e60c6}.bg-dark,.navbar-brand,.btn-primary{background-color:#332514!important;color:#c69e60!important}.btn-secondary{background-color:#c69e60!important;color:#36413e!important}
