diff --git a/css/adventures-with-emmy.css b/css/adventures-with-emmy.css new file mode 100644 index 0000000..f269a7c --- /dev/null +++ b/css/adventures-with-emmy.css @@ -0,0 +1,1508 @@ +.awemmy { + font-family: "Signika", "Book Antiqua", serif; + color: #2c2c2c; + background: #f5f0e8; +} +.awemmy input[type="text"], +.awemmy input[type="number"], +.awemmy input[type="search"], +.awemmy input:not([type]), +.awemmy select, +.awemmy textarea { + background: white; + color: #2c2c2c; + border: 1px solid #7a7a88; + border-radius: 3px; +} +.awemmy input[type="text"]:focus, +.awemmy input[type="number"]:focus, +.awemmy input[type="search"]:focus, +.awemmy input:not([type]):focus, +.awemmy select:focus, +.awemmy textarea:focus { + border-color: #3a3a45; + outline: none; + box-shadow: 0 0 0 2px rgba(58, 90, 140, 0.2); +} +.awemmy input[type="text"]:disabled, +.awemmy input[type="number"]:disabled, +.awemmy input[type="search"]:disabled, +.awemmy input:not([type]):disabled, +.awemmy select:disabled, +.awemmy textarea:disabled, +.awemmy input[type="text"][disabled], +.awemmy input[type="number"][disabled], +.awemmy input[type="search"][disabled], +.awemmy input:not([type])[disabled], +.awemmy select[disabled], +.awemmy textarea[disabled] { + background: #e3dbcc; + color: #6c6c6c; + cursor: default; +} +.awemmy .window-header { + background: #3a3a45; + color: white; +} +.awemmy .window-header .window-title { + font-family: "Signika", "Palatino Linotype", serif; + font-size: 1.1rem; +} +.awemmy .sheet-controls { + display: flex; + gap: 0.25rem; + align-items: center; +} +.awemmy .sheet-controls .toggle-sheet { + cursor: pointer; + padding: 0.25rem 0.5rem; + border: 1px solid #7a7a88; + border-radius: 3px; + background: white; +} +.awemmy .sheet-controls .toggle-sheet:hover { + background: #e8a020; + color: white; + border-color: #e8a020; +} +.awemmy .actor-header { + display: flex; + gap: 1rem; + padding: 0.5rem; + background: #c5c5d0; + border-bottom: 2px solid #7a7a88; +} +.awemmy .actor-header .actor-img { + width: 80px; + height: 80px; + object-fit: cover; + border: 2px solid #7a7a88; + border-radius: 4px; + cursor: pointer; +} +.awemmy .actor-header .actor-img:hover { + border-color: #e8a020; +} +.awemmy .actor-header .actor-name { + font-family: "Signika", "Palatino Linotype", serif; + font-size: 1.4rem; + font-weight: bold; + color: #3a3a45; +} +.awemmy .attributes-table { + width: 100%; + border-collapse: collapse; + margin: 0.1rem 0; + font-size: 0.8rem; +} +.awemmy .attributes-table th:nth-child(1), +.awemmy .attributes-table td:nth-child(1) { + width: 30%; +} +.awemmy .attributes-table th:nth-child(2), +.awemmy .attributes-table td:nth-child(2) { + width: 20%; +} +.awemmy .attributes-table th:nth-child(3), +.awemmy .attributes-table td:nth-child(3) { + width: 15%; +} +.awemmy .attributes-table th:nth-child(4), +.awemmy .attributes-table td:nth-child(4) { + width: 15%; +} +.awemmy .attributes-table th:nth-child(5), +.awemmy .attributes-table td:nth-child(5) { + width: 20%; +} +.awemmy .attributes-table thead tr { + background: #3a3a45; + color: white; +} +.awemmy .attributes-table thead tr th { + padding: 0.15rem 0.3rem; + text-align: center; + font-size: 0.72rem; + text-transform: uppercase; +} +.awemmy .attributes-table tbody tr:nth-child(even) { + background: #e8e8ed; +} +.awemmy .attributes-table tbody tr td { + padding: 0.05rem 0.3rem; + text-align: center; + border-bottom: 1px solid #7a7a88; +} +.awemmy .attributes-table tbody tr td select { + width: auto; + min-width: 50px; + padding: 0 0.2rem; + font-size: 0.78rem; + background: white; + color: #2c2c2c; + border: 1px solid #7a7a88; + border-radius: 3px; +} +.awemmy .attributes-table tbody tr td input { + width: 44px; + text-align: center; + padding: 0 0.2rem; + font-size: 0.78rem; + background: white; + color: #2c2c2c; + border: 1px solid #7a7a88; + border-radius: 3px; +} +.awemmy .attributes-table tbody tr .attr-label { + text-align: left; + font-weight: bold; + white-space: nowrap; +} +.awemmy .attributes-table tbody tr .rollable { + cursor: pointer; + color: #3a3a45; +} +.awemmy .attributes-table tbody tr .rollable:hover { + color: #e8a020; + text-decoration: underline; +} +.awemmy .resource-block { + display: flex; + align-items: center; + gap: 0.5rem; +} +.awemmy .resource-block label { + font-size: 0.8rem; + text-transform: uppercase; + color: #6c6c6c; + min-width: 80px; +} +.awemmy .resource-block .resource-values { + display: flex; + align-items: center; + gap: 0.25rem; +} +.awemmy .resource-block .resource-values input { + width: 45px; + text-align: center; +} +.awemmy .resource-block .resource-values .separator { + color: #6c6c6c; +} +.awemmy .resource-block .resource-stepper { + display: flex; + gap: 0.15rem; +} +.awemmy .resource-block .resource-stepper button { + width: 22px; + height: 22px; + padding: 0; + font-size: 0.9rem; + line-height: 1; + cursor: pointer; + border: 1px solid #7a7a88; + border-radius: 3px; + background: white; +} +.awemmy .resource-block .resource-stepper button:hover { + background: #e8a020; + color: white; +} +.awemmy .item-list .item-row { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.3rem 0.25rem; + border-bottom: 1px solid #dacfbb; +} +.awemmy .item-list .item-row:hover { + background: #e8e8ed; +} +.awemmy .item-list .item-row .item-img { + width: 28px; + height: 28px; + object-fit: cover; + border-radius: 3px; + border: 1px solid #7a7a88; +} +.awemmy .item-list .item-row .item-name { + flex: 1; + font-weight: bold; +} +.awemmy .item-list .item-row .item-controls { + display: flex; + gap: 0.25rem; +} +.awemmy .item-list .item-row .item-controls a { + color: #6c6c6c; + cursor: pointer; +} +.awemmy .item-list .item-row .item-controls a:hover { + color: #3a3a45; +} +.awemmy .item-list .item-row .item-controls a[data-action="delete"]:hover { + color: #e74c3c; +} +.awemmy .item-list .item-add { + margin-top: 0.25rem; +} +.awemmy .item-list .item-add button { + width: 100%; + cursor: pointer; + border: 1px dashed #7a7a88; + background: transparent; + padding: 0.25rem; + color: #6c6c6c; +} +.awemmy .item-list .item-add button:hover { + color: #3a3a45; + border-color: #3a3a45; + background: #e8e8ed; +} +.awemmy fieldset { + border: 1px solid #7a7a88; + border-radius: 4px; + padding: 0.5rem; + margin: 0.5rem 0; +} +.awemmy fieldset legend { + font-family: "Signika", "Palatino Linotype", serif; + font-weight: bold; + color: white; + background: #3a3a45; + padding: 0.1rem 0.6rem; + border-radius: 3px; + text-transform: uppercase; + font-size: 0.78rem; + letter-spacing: 0.04em; +} +.awemmy .tabs { + display: flex; + gap: 0; + border-bottom: 2px solid #3a3a45; + background: #d0d0d8; +} +.awemmy .tabs a { + padding: 0.4rem 1rem; + cursor: pointer; + border: 1px solid transparent; + border-bottom: none; + color: #3a3a45 !important; + background: #d0d0d8; + font-weight: 500; + text-decoration: none; +} +.awemmy .tabs a:hover { + color: #3a3a45 !important; + background: #e8e8ed; +} +.awemmy .tabs a.active { + background: white; + color: #3a3a45 !important; + border-color: #3a3a45; + border-bottom-color: white; + font-weight: bold; + margin-bottom: -2px; +} +.awemmy .tabs .item { + padding: 0.4rem 1rem; + cursor: pointer; + border: 1px solid transparent; + border-bottom: none; + color: #3a3a45; + background: #d0d0d8; + font-weight: 500; +} +.awemmy .tabs .item:hover { + color: #3a3a45; + background: #e8e8ed; +} +.awemmy .tabs .item.active { + background: white; + color: #3a3a45; + border-color: #3a3a45; + border-bottom-color: white; + font-weight: bold; + margin-bottom: -2px; +} +.awemmy .character-content fieldset { + padding: 0.3rem 0.5rem; + margin: 0.3rem 0; +} +.awemmy .items-list-fieldset .item-row { + display: flex; + align-items: center; + gap: 0.5rem; + padding: 0.3rem 0.25rem; + border-bottom: 1px solid #dacfbb; +} +.awemmy .items-list-fieldset .item-row:hover { + background: #e8e8ed; +} +.awemmy .items-list-fieldset .item-row .item-img { + width: 28px; + height: 28px; + object-fit: cover; + border-radius: 3px; + border: 1px solid #7a7a88; + flex-shrink: 0; +} +.awemmy .items-list-fieldset .item-row .item-name { + flex: 1; + font-weight: bold; +} +.awemmy .items-list-fieldset .item-row .item-controls { + display: flex; + gap: 0.25rem; +} +.awemmy .items-list-fieldset .item-row .item-controls a { + color: #6c6c6c; + cursor: pointer; +} +.awemmy .items-list-fieldset .item-row .item-controls a:hover { + color: #3a3a45; +} +.awemmy .items-list-fieldset .item-row .item-controls a[data-action="delete"]:hover { + color: #e74c3c; +} +.awemmy .items-list-fieldset .item-empty { + color: #999; + font-style: italic; + padding: 0.3rem 0.25rem; + font-size: 0.85em; +} +.awemmy .items-list-fieldset .item-field-link { + font-size: 0.78em; + color: #3a3a45; + white-space: nowrap; + display: flex; + align-items: center; + gap: 0.25rem; +} +.awemmy .items-list-fieldset .item-field-link.no-match { + color: #b45309; +} +.awemmy .items-list-fieldset .item-key-attr { + font-size: 0.8em; + color: #555; + white-space: nowrap; +} +.awemmy .items-list-fieldset .field-roll { + color: #3a3a45; + cursor: pointer; + font-weight: bold; +} +.awemmy .items-list-fieldset .field-roll:hover { + color: #2a3a6c; + text-decoration: underline; +} +.awemmy .character-content .actor-header { + display: grid; + grid-template-columns: 80px 1fr auto auto; + gap: 0.5rem 0.75rem; + align-items: center; + padding: 0.5rem 0.75rem; +} +.awemmy .character-content .actor-header .actor-img { + grid-row: 1 / 3; + align-self: start; + width: 80px; + height: 80px; +} +.awemmy .character-content .actor-header .actor-identity { + grid-column: 2; + grid-row: 1 / 3; + display: flex; + flex-direction: column; + gap: 0.3rem; + justify-content: center; +} +.awemmy .character-content .actor-header .actor-identity .actor-name { + font-size: 1.3rem; + width: 100%; +} +.awemmy .character-content .actor-header .actor-identity .actor-details { + display: flex; + flex-wrap: wrap; + gap: 0.3rem 1rem; + align-items: center; +} +.awemmy .character-content .actor-header .actor-identity .actor-details .detail-item { + display: flex; + align-items: center; + gap: 0.3rem; +} +.awemmy .character-content .actor-header .actor-identity .actor-details .detail-item label { + font-size: 0.72rem; + text-transform: uppercase; + color: #6c6c6c; + white-space: nowrap; + font-weight: 600; +} +.awemmy .character-content .actor-header .actor-identity .actor-details .detail-item select, +.awemmy .character-content .actor-header .actor-identity .actor-details .detail-item input[type="number"] { + width: 64px; + padding: 0.15rem 0.25rem; + font-size: 0.9rem; + text-align: center; +} +.awemmy .character-content .actor-header .actor-stats { + grid-column: 3; + grid-row: 1 / 3; + display: flex; + flex-direction: column; + gap: 0.3rem; + justify-content: center; +} +.awemmy .character-content .actor-header .actor-stats .resource-block { + display: flex; + align-items: center; + gap: 0.4rem; + flex-wrap: nowrap; +} +.awemmy .character-content .actor-header .actor-stats .resource-block > label { + font-size: 0.7rem; + text-transform: uppercase; + color: #6c6c6c; + font-weight: 600; + min-width: 70px; + white-space: nowrap; + text-align: right; +} +.awemmy .character-content .actor-header .actor-stats .resource-block .resource-values { + display: flex; + align-items: center; + gap: 0.2rem; +} +.awemmy .character-content .actor-header .actor-stats .resource-block .resource-values input { + width: 42px; + text-align: center; + font-size: 0.9rem; +} +.awemmy .character-content .actor-header .actor-stats .resource-block .resource-temp { + display: flex; + align-items: center; + gap: 0.3rem; +} +.awemmy .character-content .actor-header .actor-stats .resource-block .resource-temp label { + font-size: 0.65rem; + text-transform: uppercase; + color: #6c6c6c; + white-space: nowrap; + text-align: right; +} +.awemmy .character-content .actor-header .actor-stats .resource-block .resource-temp input { + width: 38px; + text-align: center; + font-size: 0.85rem; +} +.awemmy .character-content .actor-header .actor-stats .resource-block .resource-stepper { + margin-left: 0.2rem; +} +.awemmy .character-content .actor-header .sheet-controls { + grid-column: 4; + grid-row: 1 / 3; + align-self: center; +} +.awemmy .creature-content .actor-header { + align-items: center; + flex-wrap: wrap; +} +.awemmy .creature-content .actor-header .actor-img { + width: 56px; + height: 56px; +} +.awemmy .creature-content .actor-header .actor-identity { + flex: 1; + display: flex; + flex-direction: column; + gap: 0.25rem; +} +.awemmy .creature-content .actor-header .actor-details { + display: flex; + flex-wrap: wrap; + gap: 0.5rem 1rem; + align-items: center; +} +.awemmy .creature-content .actor-header .actor-details .detail-item { + display: flex; + align-items: center; + gap: 0.25rem; +} +.awemmy .creature-content .actor-header .actor-details .detail-item label { + font-size: 0.75rem; + text-transform: uppercase; + color: #6c6c6c; + white-space: nowrap; +} +.awemmy .creature-content .actor-header .actor-details .detail-item input { + width: 42px; + text-align: center; +} +.awemmy .creature-content .actor-header .actor-details .detail-item span { + color: #6c6c6c; +} +.awemmy .creature-content .eureka-rubric { + display: flex; + flex-direction: column; + gap: 0.75rem; + padding: 0.25rem 0; +} +.awemmy .creature-content .eureka-rubric .eureka-field { + display: flex; + flex-direction: column; + gap: 0.25rem; +} +.awemmy .creature-content .eureka-rubric .eureka-field label { + font-weight: bold; + font-size: 0.85rem; + color: #1b7943; + text-transform: uppercase; +} +.awemmy .creature-content .eureka-rubric .eureka-field textarea { + width: 100%; + resize: vertical; + border: 1px solid #7a7a88; + border-radius: 4px; + padding: 0.4rem 0.5rem; + font-family: "Signika", "Book Antiqua", serif; + font-size: 0.9rem; + background: white; + color: #2c2c2c; + line-height: 1.4; +} +.awemmy .creature-content .eureka-rubric .eureka-field textarea:focus { + border-color: #3a3a45; + outline: none; + box-shadow: 0 0 0 2px rgba(58, 90, 140, 0.25); +} +.awemmy .creature-content .eureka-rubric .eureka-field textarea::placeholder { + color: #6c6c6c; + font-style: italic; +} +.awemmy .creature-content .eureka-rubric .eureka-columns { + display: grid; + grid-template-columns: 1fr 1fr; + gap: 0.75rem; +} +.awemmy .eureka-rubric { + background: #e6f9ee; + border: 1px solid #2ecc71; + border-radius: 4px; + padding: 0.5rem; +} +.awemmy .eureka-rubric .eureka-row { + display: flex; + align-items: flex-start; + gap: 0.5rem; + margin-bottom: 0.4rem; +} +.awemmy .eureka-rubric .eureka-row label { + font-weight: bold; + min-width: 80px; + color: #208e4e; +} +.awemmy .eureka-rubric .eureka-row input, +.awemmy .eureka-rubric .eureka-row textarea { + flex: 1; +} +.awemmy.item { + display: flex; + flex-direction: column; + height: 100%; +} +.awemmy.item form { + display: flex; + flex-direction: column; + flex: 1; + min-height: 0; +} +.awemmy.item .item-header { + display: flex; + align-items: center; + gap: 0.75rem; + padding: 0.5rem 0.75rem; + background: #c5c5d0; + border-bottom: 2px solid #7a7a88; +} +.awemmy.item .item-header .item-img { + width: 52px; + height: 52px; + object-fit: cover; + border: 2px solid #7a7a88; + border-radius: 4px; + cursor: pointer; +} +.awemmy.item .item-header .item-img:hover { + border-color: #e8a020; +} +.awemmy.item .item-header input[type="text"] { + font-family: "Signika", "Palatino Linotype", serif; + font-size: 1.15rem; + font-weight: bold; + flex: 1; + border: none; + background: transparent; +} +.awemmy.item .item-header input[type="text"]:focus { + background: white; + border: 1px solid #7a7a88; +} +.awemmy.item .item-body { + padding: 0.6rem 0.75rem; + display: flex; + flex-direction: column; + flex: 1; + gap: 0.3rem; + min-height: 0; +} +.awemmy.item .item-body > fieldset:last-child { + flex: 1; + display: flex; + flex-direction: column; + min-height: 0; +} +.awemmy.item .item-body > fieldset:last-child .editor, +.awemmy.item .item-body > fieldset:last-child prose-mirror, +.awemmy.item .item-body > fieldset:last-child textarea { + flex: 1; + min-height: 160px; + resize: vertical; +} +.awemmy.item .item-body .form-group { + display: flex; + align-items: center; + gap: 0.5rem; + min-height: 28px; +} +.awemmy.item .item-body .form-group label { + width: 38%; + flex-shrink: 0; + font-size: 0.8rem; + font-weight: 600; + color: #6c6c6c; + text-transform: uppercase; + letter-spacing: 0.03em; +} +.awemmy.item .item-body .form-group input, +.awemmy.item .item-body .form-group select { + flex: 1; + min-width: 0; +} +.awemmy.item .item-body .form-row { + display: flex; + gap: 0.75rem; +} +.awemmy.item .item-body .form-row .form-group { + flex: 1; +} +.awemmy.item .item-body .form-group-boosts { + display: flex; + align-items: center; + gap: 0.5rem; + min-height: 28px; +} +.awemmy.item .item-body .form-group-boosts > label { + width: 38%; + flex-shrink: 0; + font-size: 0.8rem; + font-weight: 600; + color: #6c6c6c; + text-transform: uppercase; + letter-spacing: 0.03em; +} +.awemmy.item .item-body .boost-checks { + display: flex; + gap: 0.75rem; +} +.awemmy.item .item-body .boost-checks .boost-check { + display: flex; + align-items: center; + gap: 0.25rem; + font-size: 0.8rem; + font-weight: 600; + color: #3a3a3a; + cursor: pointer; +} +.awemmy.item .item-body .form-group-tags { + display: flex; + flex-direction: column; + gap: 0.3rem; +} +.awemmy.item .item-body .form-group-tags label { + font-size: 0.8rem; + font-weight: 600; + color: #6c6c6c; + text-transform: uppercase; +} +.awemmy.item .item-body .form-group-tags .tags-list { + display: flex; + flex-wrap: wrap; + gap: 0.3rem; + align-items: center; + min-height: 2rem; + padding: 0.3rem 0.4rem; + background: rgba(0,0,0,0.03); + border: 1px solid #7a7a88; + border-radius: 4px; +} +.awemmy.item .item-body .form-group-tags .tags-list .tag { + display: inline-flex; + align-items: center; + gap: 0.2rem; + padding: 0.15rem 0.5rem; + background: #cfdaeb; + border: 1px solid #7a7a88; + border-radius: 12px; + font-size: 0.78rem; + color: #2c2c2c; +} +.awemmy.item .item-body .form-group-tags .tags-list .tag a { + color: #6c6c6c; + cursor: pointer; + font-weight: bold; + line-height: 1; +} +.awemmy.item .item-body .form-group-tags .tags-list .tag a:hover { + color: #e8a020; +} +.awemmy.item .item-body .form-group-tags .tags-list .new-tag { + flex: 1; + min-width: 120px; + font-size: 0.78rem; + padding: 0.15rem 0.4rem; + border-style: dashed; + background: transparent; +} +.awemmy.item .item-body .section-divider { + border: none; + border-top: 1px solid #7a7a88; + margin: 0.3rem 0; +} +.awemmy.item .item-body fieldset { + border: 1px solid #7a7a88; + border-radius: 4px; + padding: 0.4rem 0.6rem; + margin-top: 0.3rem; +} +.awemmy.item .item-body fieldset legend { + font-size: 0.78rem; + font-weight: 600; + color: white; + background: #3a3a45; + text-transform: uppercase; + padding: 0.1rem 0.5rem; + border-radius: 3px; + letter-spacing: 0.04em; +} +.awemmy.item .item-body fieldset .editor, +.awemmy.item .item-body fieldset .prosemirror, +.awemmy.item .item-body fieldset textarea { + min-height: 100px; +} +.awemmy-chat { + padding: 0.5rem; +} +.awemmy-chat .chat-roll-header { + display: flex; + align-items: center; + gap: 0.5rem; + margin-bottom: 0.5rem; +} +.awemmy-chat .chat-roll-header .chat-actor-img { + width: 36px; + height: 36px; + border-radius: 50%; + border: 2px solid #7a7a88; +} +.awemmy-chat .chat-roll-header .chat-roll-label { + font-family: "Signika", "Palatino Linotype", serif; + font-size: 1rem; + font-weight: bold; + color: #3a3a45; +} +.awemmy-chat .roll-result { + text-align: center; + font-size: 1.6rem; + font-weight: bold; + padding: 0.5rem; + border-radius: 4px; + margin: 0.5rem 0; + background: #c5c5d0; + color: #3a3a45; +} +.awemmy-chat .outcome-badge { + text-align: center; + padding: 0.3rem 0.75rem; + border-radius: 12px; + font-weight: bold; + font-size: 0.9rem; +} +.awemmy-chat .outcome-badge.critical-success { + background: #1abc9c; + color: white; +} +.awemmy-chat .outcome-badge.success { + background: #27ae60; + color: white; +} +.awemmy-chat .outcome-badge.failure { + background: #e74c3c; + color: white; +} +.awemmy-chat .outcome-badge.critical-failure { + background: #8e44ad; + color: white; +} +.awemmy.dialog .awemmy-roll-dialog { + padding: 0.5rem 0.25rem; +} +.awemmy.dialog .awemmy-roll-dialog .roll-header { + display: flex; + justify-content: space-between; + align-items: baseline; + padding: 0.4rem 0.5rem; + background: #c5c5d0; + border-radius: 4px; + margin-bottom: 0.5rem; + border-left: 4px solid #3a3a45; +} +.awemmy.dialog .awemmy-roll-dialog .roll-header .roll-attr-name { + font-family: "Signika", "Palatino Linotype", serif; + font-size: 1.05rem; + font-weight: bold; + color: #3a3a45; +} +.awemmy.dialog .awemmy-roll-dialog .roll-header .roll-formula-summary { + font-size: 0.85rem; + color: #6c6c6c; +} +.awemmy.dialog .awemmy-roll-dialog .roll-header .roll-formula-summary em { + color: #e8a020; + font-style: normal; + font-weight: bold; +} +.awemmy.dialog .awemmy-roll-dialog .dialog-row { + display: flex; + align-items: center; + gap: 0.5rem; + margin-bottom: 0.35rem; +} +.awemmy.dialog .awemmy-roll-dialog .dialog-row label { + width: 42%; + flex-shrink: 0; + font-size: 0.8rem; + font-weight: 600; + color: #6c6c6c; + text-transform: uppercase; +} +.awemmy.dialog .awemmy-roll-dialog .dialog-row input, +.awemmy.dialog .awemmy-roll-dialog .dialog-row select { + flex: 1; + min-width: 0; + background: white; + color: #2c2c2c; + border: 1px solid #7a7a88; + border-radius: 3px; + padding: 0.2rem 0.35rem; + font-size: 0.85rem; +} +.awemmy.dialog .awemmy-roll-dialog .hint-row { + justify-content: space-between; + background: #dacfbb; + border-radius: 3px; + padding: 0.15rem 0.5rem; + font-size: 0.8rem; +} +.awemmy.dialog .awemmy-roll-dialog .hint-row .hint-label { + color: #6c6c6c; + font-weight: 600; + text-transform: uppercase; +} +.awemmy.dialog .awemmy-roll-dialog .hint-row .hint-value { + font-weight: bold; +} +.awemmy.dialog .awemmy-roll-dialog .hint-row .hint-value.positive { + color: #27ae60; +} +.awemmy.dialog .awemmy-roll-dialog .hint-row .hint-value.negative { + color: #e74c3c; +} +.awemmy.dialog .awemmy-roll-dialog .formula-preview { + background: #dee5f1; + border-radius: 3px; + padding: 0.2rem 0.5rem; + margin-top: 0.2rem; +} +.awemmy.dialog .awemmy-roll-dialog .formula-preview .formula-label { + width: 42%; + flex-shrink: 0; + font-size: 0.78rem; + font-weight: 600; + color: #6c6c6c; + text-transform: uppercase; +} +.awemmy.dialog .awemmy-roll-dialog .formula-preview .formula-text { + font-family: monospace; + font-size: 0.95rem; + font-weight: bold; + color: #3a3a45; +} +.awemmy-chat { + padding: 0.4rem; +} +.awemmy-chat .chat-roll-header { + display: flex; + align-items: center; + gap: 0.5rem; + margin-bottom: 0.4rem; +} +.awemmy-chat .chat-roll-header .chat-actor-img { + width: 34px; + height: 34px; + border-radius: 50%; + border: 2px solid #7a7a88; + object-fit: cover; +} +.awemmy-chat .chat-roll-header .chat-roll-info { + display: flex; + flex-direction: column; + gap: 0.1rem; +} +.awemmy-chat .chat-roll-header .chat-actor-name { + font-size: 0.75rem; + color: #6c6c6c; + font-weight: 600; + text-transform: uppercase; + letter-spacing: 0.04em; +} +.awemmy-chat .chat-roll-header .chat-roll-label { + font-family: "Signika", "Palatino Linotype", serif; + font-size: 0.95rem; + font-weight: bold; + color: #3a3a45; +} +.awemmy-chat .chat-source-item { + display: flex; + align-items: center; + gap: 0.4rem; + padding: 0.2rem 0.4rem; + background: #eef2f8; + border-left: 3px solid #3a3a45; + border-radius: 3px; + margin-bottom: 0.3rem; + font-size: 0.85rem; + color: #3a3a45; + font-style: italic; +} +.awemmy-chat .chat-source-item .chat-source-img { + width: 20px; + height: 20px; + border-radius: 3px; + object-fit: cover; + border: 1px solid #3a3a4544; +} +.awemmy-chat .chat-source-item .chat-source-name { + font-weight: 600; +} +.awemmy-chat .roll-breakdown { + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + padding: 0.5rem; + background: #c5c5d0; + border-radius: 4px; + margin: 0.35rem 0; + font-size: 1rem; +} +.awemmy-chat .roll-breakdown .die-result { + display: inline-flex; + align-items: center; + gap: 0.25rem; + font-weight: bold; + color: #2c2c2c; +} +.awemmy-chat .roll-breakdown .die-result.max { + color: #1abc9c; +} +.awemmy-chat .roll-breakdown .die-result.min { + color: #8e44ad; +} +.awemmy-chat .roll-breakdown .die-result.discarded { + opacity: 0.35; + text-decoration: line-through; + color: #6c6c6c; +} +.awemmy-chat .roll-breakdown .die-result i { + color: #3a3a45; + font-size: 1.1rem; +} +.awemmy-chat .roll-breakdown .roll-mod { + color: #6c6c6c; + font-size: 0.9rem; +} +.awemmy-chat .roll-breakdown .roll-equals { + color: #6c6c6c; +} +.awemmy-chat .roll-breakdown .roll-total { + font-family: "Signika", "Palatino Linotype", serif; + font-size: 1.4rem; + font-weight: bold; + color: #3a3a45; +} +.awemmy-chat .roll-breakdown .roll-dc { + font-size: 0.8rem; + color: #6c6c6c; + border-left: 1px solid #7a7a88; + padding-left: 0.5rem; +} +.awemmy-chat .roll-twice-badge { + text-align: center; + font-size: 0.75rem; + color: #7a7a88; + font-style: italic; + margin: 0.15rem 0 0.25rem; +} +.awemmy-chat .outcome-badge { + text-align: center; + padding: 0.25rem 0.75rem; + border-radius: 12px; + font-weight: bold; + font-size: 0.88rem; +} +.awemmy-chat .outcome-badge.criticalSuccess { + background: #1abc9c; + color: white; +} +.awemmy-chat .outcome-badge.success { + background: #27ae60; + color: white; +} +.awemmy-chat .outcome-badge.failure { + background: #e74c3c; + color: white; +} +.awemmy-chat .outcome-badge.criticalFailure { + background: #8e44ad; + color: white; +} +.awemmy-chat .chat-damage { + display: flex; + align-items: center; + gap: 0.5rem; + margin-top: 0.4rem; + padding: 0.3rem 0.6rem; + border-radius: 4px; + background: rgba(192, 57, 43, 0.12); + border-left: 3px solid #c0392b; + font-size: 0.9rem; +} +.awemmy-chat .chat-damage.critical { + background: rgba(230, 126, 34, 0.15); + border-left-color: #e67e22; +} +.awemmy-chat .chat-damage .damage-label { + font-weight: bold; + color: #c0392b; +} +.awemmy-chat .chat-damage.critical .damage-label { + color: #e67e22; +} +.awemmy-chat .chat-damage .damage-value { + font-size: 1.1rem; + font-weight: bold; +} +.awemmy-chat .chat-damage .damage-type { + font-size: 0.8rem; + color: #666; +} +.awemmy-chat .chat-damage-action { + margin-top: 0.4rem; + text-align: center; +} +.awemmy-chat .roll-damage-btn { + background: #5a1a1a; + color: #f0d9b5; + border: 1px solid #8b3a3a; + border-radius: 4px; + padding: 0.25rem 0.6rem; + font-size: 0.8rem; + cursor: pointer; +} +.awemmy-chat .roll-damage-btn:hover { + background: #7a2a2a; +} +.awemmy-chat .private-result { + text-align: center; + color: #6c6c6c; + font-size: 0.85rem; + padding: 0.5rem; +} + +/* Conditions Panel */ +.conditions-fieldset .conditions-panel { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + padding: 0.4rem 0; +} +.conditions-panel .condition-badge { + display: flex; + flex-direction: column; + align-items: center; + gap: 0.2rem; + width: 54px; + padding: 0.2rem; + border-radius: 4px; + border: 1px solid transparent; + cursor: pointer; + opacity: 0.35; + transition: opacity 0.15s, border-color 0.15s; +} +.conditions-panel .condition-badge:hover { opacity: 0.7; } +.conditions-panel .condition-badge.active { + opacity: 1; + border-color: #666; + background: rgba(0,0,0,0.08); +} +.conditions-panel .condition-badge img { + width: 32px; + height: 32px; +} +.conditions-panel .condition-badge .condition-label { + font-size: 0.65rem; + text-align: center; + line-height: 1.1; + color: #333; +} +.condition-penalties { + display: flex; + flex-direction: column; + gap: 0.25rem; + margin-top: 0.4rem; + padding-top: 0.4rem; + border-top: 1px solid #c5c5d0; +} +.condition-penalty-row { + display: flex; + align-items: center; + gap: 0.5rem; +} +.condition-penalty-row label { + font-size: 0.7rem; + text-transform: uppercase; + color: #6c6c6c; + font-weight: 600; + flex: 1; +} +.condition-penalty-input { + width: 42px; + text-align: center; + font-size: 0.85rem; +} + +/* Condition bonus in roll breakdown */ +.awemmy-chat .roll-breakdown .roll-mod.condition { + color: #7744aa; + font-weight: bold; +} + +/* ---- Ability Use ---- */ +.item-row.ability-used { + opacity: 0.5; +} +.item-row.ability-used .item-name::after { + content: " ✓"; + font-size: 0.75em; + color: #888; +} +a.ability-used-btn { + color: #aaa !important; + cursor: not-allowed; +} +.item-frequency { + font-size: 0.75rem; + color: #666; + font-style: italic; + margin-left: 0.3rem; +} +.daily-reset { + margin-top: 0.4rem; + text-align: right; +} +.daily-reset button { + font-size: 0.8rem; + padding: 0.2rem 0.6rem; + color: #555; + background: transparent; + border: 1px solid #bbb; + border-radius: 4px; + cursor: pointer; +} +.daily-reset button:hover { background: rgba(0,0,0,0.05); } + +/* Ability use chat message */ +.ability-use-message { + font-size: 0.9rem; + line-height: 1.4; +} +.ability-use-header { + display: flex; + align-items: center; + gap: 0.5rem; + margin-bottom: 0.4rem; +} +.ability-use-img { + width: 36px; + height: 36px; + border: 1px solid #888; + border-radius: 4px; + object-fit: cover; +} +.ability-use-title { + flex: 1; + display: flex; + flex-direction: column; +} +.ability-use-name { + font-weight: bold; + font-size: 1rem; +} +.ability-use-cost { + font-size: 1rem; + color: #5a3; + font-weight: bold; +} +.ability-use-type { + font-size: 0.75rem; + background: #dde; + border: 1px solid #99a; + border-radius: 10px; + padding: 0.1rem 0.5rem; + color: #447; + text-transform: uppercase; + font-weight: bold; +} +.ability-use-traits { + display: flex; + flex-wrap: wrap; + gap: 0.25rem; + margin-bottom: 0.4rem; +} +.ability-trait-tag { + background: #f0eadd; + border: 1px solid #b8a880; + border-radius: 10px; + padding: 0.1rem 0.5rem; + font-size: 0.72rem; + color: #6b4f2a; + font-weight: bold; + text-transform: uppercase; +} +.ability-use-meta { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + padding: 0.25rem 0; + margin-bottom: 0.4rem; +} +.ability-meta-row { + display: flex; + gap: 0.5rem; + font-size: 0.8rem; +} +.ability-meta-label { + font-weight: bold; + color: #555; + min-width: 80px; +} +.ability-fp-cost { + color: #22a; + font-weight: bold; +} +.ability-use-description { + font-size: 0.85rem; + color: #333; +} + +/* ---- Long Rest chat message ---- */ +.awemmy-rest-message h3 { + font-size: 1rem; + margin: 0 0 0.4rem; + color: #334; +} +.awemmy-rest-message ul { + margin: 0; + padding-left: 1.2rem; + font-size: 0.85rem; +} +.awemmy-rest-message li { + margin: 0.15rem 0; +} + +/* Rest button in sheet controls */ +.sheet-controls button[data-action="longRest"] { + color: #557; +} +.sheet-controls button[data-action="longRest"]:hover { + color: #225; +} + +/* ============================================================ */ +/* Scrollable tabs — character sheet */ +/* ============================================================ */ + +/* Make the character window content a flex column so the tab body fills remaining height */ +.awemmy.character .window-content { + display: flex; + flex-direction: column; + overflow: hidden; + padding: 0; +} + +.awemmy .character-content { + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; +} + +/* Header and nav stay fixed, tabs scroll */ +.awemmy .character-content .actor-header, +.awemmy .character-content .tabs { + flex-shrink: 0; +} + +/* Only the ACTIVE tab grows and scrolls; inactive tabs remain display:none */ +.awemmy .character-content .tab.active { + flex: 1 1 0; + overflow-y: auto; + overflow-x: hidden; + padding: 0.4rem 0.6rem; + min-height: 0; +} + +/* ============================================================ */ +/* Scrollable tabs — creature sheet */ +/* ============================================================ */ + +.awemmy.creature .window-content { + display: flex; + flex-direction: column; + overflow: hidden; + padding: 0; +} + +.awemmy .creature-content { + display: flex; + flex-direction: column; + height: 100%; + overflow: hidden; +} + +.awemmy .creature-content .actor-header, +.awemmy .creature-content .tabs { + flex-shrink: 0; +} + +/* Only the ACTIVE tab grows and scrolls */ +.awemmy .creature-content .tab.active { + flex: 1 1 0; + overflow-y: auto; + overflow-x: hidden; + padding: 0.4rem 0.6rem; + min-height: 0; +} + +/* Eureka tab: each textarea auto-grows, whole tab scrolls */ +.awemmy .creature-content .creature-eureka { + padding: 0.5rem 0.6rem; +} + +.awemmy .creature-content .eureka-rubric { + display: flex; + flex-direction: column; + gap: 0.6rem; +} + +/* Three-column threshold row should never overflow its parent */ +.awemmy .creature-content .eureka-columns { + gap: 0.5rem; +} + +/* Description tab: make the textarea fill available space (only when active) */ +.awemmy .creature-content .tab.active.creature-description { + display: flex; + flex-direction: column; +} + +.awemmy .creature-content .tab.active.creature-description fieldset { + flex: 1; + display: flex; + flex-direction: column; +} + +/* ProseMirror / rich text editor: taller by default */ +.awemmy .creature-content .creature-description .editor, +.awemmy .creature-content .creature-description prose-mirror, +.awemmy .creature-content .creature-description .ProseMirror { + min-height: 320px; + flex: 1; +} + +.awemmy .creature-content .creature-description textarea { + min-height: 320px; + resize: vertical; + flex: 1; +} + +/* ============================================================ */ +/* Token Action HUD - Conditions styling */ +/* ============================================================ */ + +/* Ensure HUD containers have proper font */ +.tah-container .awemmy, +.token-action-hud .awemmy { + font-family: "Signika", "Book Antiqua", serif; +} + +/* Condition buttons in Token Action HUD */ +.tah-group-conditions .tah-button, +.tah-group-conditions .tah-action { + min-width: 50px !important; + width: auto !important; + height: auto !important; + padding: 2px 4px !important; + font-size: 11px !important; + line-height: normal !important; + white-space: nowrap !important; +} + +/* Specific overrides for longer condition names */ +.tah-group-conditions .tah-button[data-action-id*="penalty"], +.tah-group-conditions .tah-action[data-action-id*="penalty"] { + min-width: 70px !important; +} + +/* Ensure condition buttons are properly sized */ +.tah-group-conditions .tah-button .action-name, +.tah-group-conditions .tah-action .action-name { + font-size: 11px !important; + text-overflow: ellipsis !important; + overflow: hidden !important; +} + +/* Hover and active states for conditions */ +.tah-group-conditions .tah-button.active, +.tah-group-conditions .tah-action.active { + border-color: #e8a020 !important; + background: rgba(232, 160, 32, 0.15) !important; +} + +/* Fix for Token Action HUD button container sizing */ +.tah-button, +.tah-action { + display: inline-flex !important; + align-items: center !important; + justify-content: center !important; +}