/*************************************************************
A - SETUP
**************************************************************/

/* A2 Deal with browser defaults and wonkiness
-------------------------------------------------------------*/

/* A2.1 */
html, body {margin: 0; padding: 0}

/* A2.2 */
.punbb * {
  margin: 0
}

/* A2.3 */
.punbb ul, .punbb dl, .punbb li, .punbb dd, .punbb dt {
  padding: 0;
  list-style: none;
}

/* A2.4 */
.punbb img {
  border:none
}

/* A2.5 */
.punbb .main table {
  table-layout: fixed;
  width: 100%;
}

/* A2.6 */
.checkfield input[type="checkbox"], .radiofield input[type="radio"] {margin: 0 0.3em;}

/* A2.7 */
p[class="checkfield"] *,
div[class="checkfield"] *,
fieldset[class="radiofield"] * {
  height: 1.8em;
  vertical-align: middle
}


/* A3 Text setup
-------------------------------------------------------------*/

/* A3.1 */
body {
  font-size: 100.01%;
}

/* A3.2 */
.punbb {
  font: normal 72.75% tahoma, verdana, arial, helvetica, sans-serif;
}

/* 3.3 */
.punbb textarea, .punbb input, .punbb select, .punbb optgroup {
  font: 1em verdana, arial, helvetica, sans-serif
}


/* A3.4 */
.punbb h1, .punbb h2, .punbb h3, .punbb th {
  font-size: 1em;
  font-weight: bold;
}

.punbb .post h3 {
  font-weight: 400;
}

.punbb h4, .punbb table {
  font-size: 1em;
  font-weight: normal;
}

/* A3.5 */
.punbb h1 span, .punbb h2 span, .punbb legend span {
  font-size: 1.1em;
}

/* A3.6 */
.punbb pre {
  font: 1.1em/140% monaco, "bitstream vera sans mono", "courier new", courier, monospace
}

/* A3.7 */
.punbb address, .punbb em {
  font-style: normal
}

/* A3.8 */
.punbb .post-content em {
  font-style: italic
}

/* A3.9 */
.punbb .post-content em.bbuline {
  font-style: normal;
  text-decoration: underline;
}

/* A3.10 */
.punbb a {
  text-decoration: none
}

/* A3.11 */
.punbb optgroup {
  font-weight: bold;
}


/* A4 Float clearing and hidden items
-------------------------------------------------------------*/

/* A4.1 */
#pun:after,
.punbb .container:after,
.punbb .post-links ul:after,
.punbb .main div.inline:after,
.punbb .post-box:after,
.punbb .linksb:after {
  clear: both;
  content: ".";
  display: block;
  height: 0;
  visibility: hidden;
  overflow:hidden;
  line-height: 0.0;
  font-size: 0;
}

/* A4.2 */
.acchide,
#pun-index #pun-main h1,
#pun-navlinks h2,
#pun-pagelinks h2,
#pun-status h2,
#pun-ulinks h2,
.punbb .forum h2,
.punbb .multipage .topic h2,
.punbb dl.post-sig dt span,
.punbb p.crumbs strong,
.punbb .divider hr,
.punbb .required label em,
.punbb .formsubmit label,
.punbb .submitfield label,
.punbb .modmenu label,
#pun-userlist .main h2 {
  font-size: 0;
  height: 0;
  width: 0;
  line-height: 0.0;
  position:absolute;
  left: -9999px;
  overflow: hidden
}


/* A5 Basic page layout and borders
-------------------------------------------------------------*/

/* A5.1 */
#pun {
  margin: 0 auto 18px auto;
  width: 96%;
  padding: 0 10px 10px 10px;
  border-style: none;
  border-width: 0;
  max-width: 1200px;
  border-radius: 5px;
}

/* A5.2 */
.punbb {
  float: left;
  width: 100%;
  height: auto;
}

/* A5.3 */
#pun-redirect, #pun-maint {
  margin: 50px 20% 12px 20%;
  width: auto;
  float: none;
}

#pun-redirect #pun-main {
  padding-top: 2em !important;
}

/* A5.4 */
.punbb .section, .punbb .main {
  margin-bottom: 1em;
}

.punbb .section:last-child {
  margin-bottom: 0
}

/* A5.5 */
.punbb .category, .punbb .post {
  margin-top: 0.4em;
}

/* A5.6 */
.punbb #pun-category1, .punbb .toppost, .punbb .topicpost {
  margin-top: 0;
}

/* 5.7 */
#pun-post .topic {
  margin-top: 1em;
}

/* A5.8 */
.punbb .section, .punbb .forum, .punbb .formal, .punbb .modmenu, .punbb .info,
.punbb .category, .punbb .post {
  border-style: none;
  border-width: 0
}

/* A5.9 */
.punbb .container {
  border-style: solid;
  border-width: 1px;
}

#html-footer .container {
  border: none 0 transparent;
}

/* A5.10 */
#pun-main h1, .punbb .section h2, #pun-stats h2, #pun-debug h2 {
  padding: 8px;
  margin-bottom: 5px;
}

#pun-main h2 {
  padding: 8px;
  margin-bottom: 5px;
}

/* A5.11 */
.punbb .modmenu {
  margin-top: 5px;
}


/*************************************************************
B - MAIN CONTENT - GENERAL
**************************************************************/

/* B1 Parsed Content, Signatures and Scroll Boxes
-------------------------------------------------------------*/

/* B1.1 */
.punbb .post-content {
  padding: 0;
  margin: 0;
  width: 100%;
  overflow: hidden;
}

/* B1.2 */
.punbb .post-sig dt {
  display: block;
  border-top: 1px solid #888;
  width: 250px;
  margin: 5px 0;
}

/* B1.3 */
.punbb .post-content p {
  margin: 0;
  padding: 0 0 1em 0;
  line-height: 150%;
}

.punbb .post-content p.lastedit {
  font-size: .95em;
  font-style: italic;
}

/* B1.4 */
.punbb .post-content img {
  vertical-align: text-bottom;
  max-width: 100%;
}

/* B1.5 */
.punbb .post-content img.postimg {
  vertical-align: middle;
}

/* B1.6 */
.punbb .post-content .blockcode, .punbb .post-content blockquote {
  width: auto;
  overflow: hidden;
}

/* B1.7 */
.punbb .post-content .scrollbox {
  width: 100%;
  overflow: auto;
}

/* B1.8 */
.punbb .post-content .code-box {
  margin: 0.4em 1.8em 1.4em 1.8em;
  border-style: solid;
  border-width: 1px;
}

.punbb .post-content .quote-box {
  margin: 0.4em 1.8em 1.4em 1.8em;
}

/* B1.9 */
.punbb .quote-box cite, .punbb .code-box strong.legend, .punbb .spoiler-box > div {
  display: block;
  padding-bottom: 0.7em;
  font-size: 11px;
  font-weight: 400;
  font-style: normal;
  margin: 0;
}

.punbb .spoiler-box > div {
  border-bottom-width: 0px;
  padding-left: 24px !important;
  background-position: 8px center !important;
}

.punbb .spoiler-box > .visible {
  border-bottom-width: 1px;
}

/* B2 Information boxes
-------------------------------------------------------------*/

/* B2.1 */
.punbb .info-box {
  padding: 1.1em 1.7em 1em 1.7em;
  border-style: solid;
  border-width: 1px;
  margin: 0 0 1.1em 0;
}

/* B2.2 */
.punbb .info-box * {
  padding: 0 0 0.7em 0;
}

/* B2.3 */
.punbb #pun-main .info-box .legend {
  font-size: 1.1em;
  font-weight: bold;
}

/* B3 Pagination and posting links
-------------------------------------------------------------*/

/* B3.1 */
.punbb .linkst {
  float: left;
  position: relative;
  width: 100%;
  font-size: 1.1em;
  height: 0;
}

/* B3.2 */
.multipage {
  margin-top: 3em;
}

/* B3.3 */
.linkst .pagelink {
  position: absolute;
  top: -4.4em;
  left: 1em;
  width: 24em;
}

/* B3.4 */
.linkst .postlink {
  position: absolute;
  top: -4.4em;
  right: 1em;
  width: 16em;
  text-align: right;
  font-weight: bold;
}

/* B3.5 */
.punbb .linksb {
  text-align: right;
  padding: 0.4em 1em 0.5em 1em;
  font-size: 1.1em;
}

/* B3.6 */
.linksb .pagelink {
  float: left;
  width: 24em;
  text-align: left;
}

/* B3.7 */
.linksb .postlink {
  float: right;
  width: 16em;
  font-weight: bold
}

/* B3.8 */
.subscribelink {
  clear:both;
  padding-top: 0.3em;
  padding-bottom: 0.5em;
}


/*************************************************************
C - MAIN CONTENT - SPECIFIC
**************************************************************/

/* C1 Form layout
-------------------------------------------------------------*/

/* C1.1 */
.punbb .formal .container {
  padding: 1.7em 2.3em 1.1em 2.3em;
}

/* C1.2 */
.punbb .formsubmit {
  padding: 0 0 0 1.7em;
  margin: 1em 0 0 0;
}

/* C1.3 */
.punbb .formsubmit input, .punbb .formsubmit a, .punbb .formsubmit span {
  margin: 0 0.6em 0 0
}

/* C1.4 */
.punbb fieldset {
  border-style: solid;
  border-width: 1px;
  padding: 0 18px 0 18px;
  margin: 0 0 1em 0
}

/* C1.5 */
.punbb fieldset legend {
  padding: 0;
  margin: 0 0 0 11px;
  font-size: 1.1em
}

/* C1.6 */
.punbb fieldset legend span {
  padding: 0 5px;
  margin: 0 0 0 -15px;
}

/* C1.7 */
.punbb fieldset fieldset {
  border-style: none;
  margin: 0;
  padding: 0 0 8px 0
}

/* C1.8 */
.punbb .fs-box {
  padding: 1em 0 0.8em 0;
}

/* C1.9 */
.punbb .fs-box p, .punbb .fs-box fieldset {
  padding: 0 0 0.8em 0
}

/* C1.10 */
.punbb .inline .inputfield, .punbb .inline .selectfield, .punbb .inline .passfield {
  float: left;
  margin-right: 1em;
}

/* C1.11 */
.punbb .inline .infofield {
  clear:both
}

/* C1.12 */
.punbb .datafield br {
  display: none
}

/* C1.13 */
.punbb .required label, .punbb .datafield span.input {
  font-weight: bold
}

/* C1.14 */
.punbb .datafield span.input a {
  font-weight: normal;
}

/* C1.15 */
.punbb .areafield span.input, .punbb p.longinput span.input {
  display: block;
  padding: 0 4em 0 0;
  height: 100%; /* For IE */
}

/* C1.16 */
.punbb textarea, .punbb .longinput input {
  width: 64%;
  margin: 0;
}

/* C1.17 */
.punbb .hashelp {
  position: relative;
}

/* C1.18 */
.punbb .helplinks {
  display: block;
  position: absolute;
  top: 1em;
  right: 0;
  font-weight: normal;
  width: 36%;
}

/* c1.19 */
.punbb #profile .helplinks {
  top: 1.5em;
}

/* C1.20 */
.punbb .helplinks span {
  display: block;
  padding-bottom: 0.2em;
}

.punbb .helplinks span INPUT {
  margin: 0px 2px 2px 0px;
}

/* C1.21 */
#pun-post .formal .info-box li {
  padding-left: 4px;
  list-style-type: square;
  list-style-position: inside;
  line-height: 1.5;
  margin: 0;
}

/* C1.22 */
.category .container {
  margin-top: 5px;
}


/* C2 Table layout
-------------------------------------------------------------*/

/* C2.1 */
.punbb .main .tcl {
  overflow: hidden;
  text-align: left;
  width: 50%;
}

/* C2.2 */
.punbb .main .tc2, .punbb .main .tc3, .punbb .main .tcmod {
  text-align: center;
  width: 10%;
}

/* C2.3 */
.punbb .main .tcr {
  overflow: hidden;
  text-align: left;
  width: 30%;
}

/* C2.4 */
#pun-userlist .main .tcl,
#pun-searchtopics .main .tcl,
#pun-modviewforum .main .tcl {
  width: 40%
}

/* C2.5 */
#pun-userlist .main .tc2,
#pun-searchtopics .main .tc2 {
  text-align: left;
  width: 20%;
}

/* C2.6 */
#pun-debug table .tcl {
  width: 15%;
  white-space:normal;
}

/* C2.7 */
#pun-debug .tcr {
  width: 90%;
  white-space: normal;
}

/* C2.8 */
#pun-index .tcl h3 {
  font-size: 1.1em;
  font-weight: bold;
  margin-bottom: 3px;
}

/* C2.9 */
.punbb td span.youposted {
  font-weight: bold;
  margin-left: -1em;
  position: absolute;
}

/* C2.10 */
.punbb td .modlist {
  display: block;
  padding-top: 0.3em
}

/* C2.11 */
.punbb .main td {
  border-style: solid none none none;
  border-width: 1px 0 0 0;
  padding: 0.8em 1em;
}

.punbb .main tbody tr:first-child td {
  border-top: none 0 transparent;
}

.post-content table td {
  border-top: solid 1px rgb(232, 237, 245) !important;
}

/* C2.12 */
.punbb .main th {
  border: none;
  padding: 5px 1em 5px 1em;
}

/* C2.13 */
.punbb .main .tcl {
  border-left-style: none;
  border-left-width: 0;
}

* html .tclcon {height: 1px}

/* C2.14 */
.punbb td div.tclcon {
  margin-left: 44px;
}

/* C2.15 */
.punbb div.icon {
  float: left;
  display: block;
  width: 36px;
  height: 36px;
  margin-top: -3px;
  margin-bottom: 3px;
  margin-right: 8px;
}

/* C2.16 */
.punbb .main .category th,
#pun-viewforum .forum th {
  font-size: 0;
  padding: 0 !important;
  border: 0 none;
}

/* C2.17 */
.category .tc2, .category .tc3,
#pun-viewforum .forum .tc2,#pun-viewforum .forum .tc3 {
  display: list-item;
  clear: right;
  width: auto !important;
  padding-left: 30% !important;
  padding-right: 10% !important;
  list-style-type: none;
  text-align: right !important;
}

.category .tc3,#pun-viewforum .forum .tc3 {
  border-top: none 0 transparent;
  padding-top: 1px !important;
  padding-bottom: .9em !important;
}

.category .tc2,#pun-viewforum .forum .tc2 {
  padding-bottom: 1px !important;
  padding-top: .9em !important;
}

.category th {
  padding: 0 !important;
}

.category .tcr,#pun-viewforum .forum .tcr {
  vertical-align: baseline;
  line-height: 1.5em;
}


/* C3 Topics
-------------------------------------------------------------*/

/* C3.1 */
.punbb .post .container {
  border-style: none solid solid solid;
  border-width: 1px;
  margin-top: -1px;
  padding-bottom: 1px;
}

/* C3.2 */
.punbb .post h3 {
  border-style: solid solid none solid;
  border-width: 1px;
}

/* C3.3 */
.punbb .post h3 span {
  border-left: 1px solid rgb(232, 237, 245);
  padding: 0.5em 1em;
  display: block;
  margin-left: 19.05em;
  border-radius: 0 !important;
  font-size: 11px;
}

/* C3.4 */
.punbb .post h3 strong {
  float: right;
  width: 5em;
  text-align: right;
  font-weight: normal;
}

/* C3.5 */
.punbb .post .post-author {
  float: left;
  width: 18em;
  margin-top: -1.5em;
  overflow: hidden;
}

/* C3.6 */
.punbb .post .post-author ul, .punbb .post .post-author p {
  padding: 0 0 1em 1em;
  line-height: 140%;
}

/* C3.7 */
.pa-author {
  font-size: 1.1em;
  font-weight: bold;
}

/* C3.8 */
.pa-author a {
  text-decoration: none
}

/* C3.9 */
li.pa-title {
  padding-bottom: 0.4em;
  font-weight: bold;
}

li.pa-avatar img, #profile-left li div img {
  border-radius: 3px;
  background-color: rgb(250, 251, 252);
  padding: 2px;
  border: 1px solid rgb(213, 213, 213);
  -webkit-box-shadow: 0px 2px 2px rgba(0,0,0,0.1);
  -moz-box-shadow: 0px 2px 2px rgba(0,0,0,0.1);
  -khtml-box-shadow: 0px 2px 2px rgba(0,0,0,0.1);
  box-shadow: 0px 2px 2px rgba(0,0,0,0.1);
}

li.pa-online {
  line-height: 0.8em;
  border-left-style: none;
  border-left-width: 0;
  margin-top: 0.7em;
}

li.pa-online:before {
  content: "";
  display: inline-block;
  width: 9px;
  height: 9px;
  background: #3BBD69;
  margin-right: .4em;
  border-radius: 50%;
}

/* C3.11 */
.punbb .post-body {
  margin-left: 18em;
  border-left-style: solid;
  border-left-width: 1px;
  padding: 0 0 1px 0;
}

/* C3.12 */
.punbb .post-box {
  padding: 1em;
}

/*C3.13 */
.punbb fieldset .post-box {
  margin-bottom: 0.8em
}

/* C3.14 */
.punbb .post-links {
  margin-left: 18em;
  border-left-style: solid;
  border-left-width: 1px;
}

/* C3.15 */
.punbb .post-links ul {
  padding: 0 1em 0 0;
  height: 2em;
  line-height: 2em;
  margin-left: -18em;
  border-top-style: none;
  border-top-width: 0px;
  background: transparent;
  text-align: right;
}

/* C3.16 */
.punbb .post-links li {
  display: inline;
  padding-left: 1em;
}

.punbb .post-links li a {
  font-size: 11px;
}

/* C3.17 */
.pl-email, .pl-website {
  float: left;
}

/* C3.18 */
.punbb .clearer {
  clear: both;
  height: 0;
  font-size: 0;
}


/* C4 Moderator menu
-------------------------------------------------------------*/

/* C4.1 */
.punbb .modmenu .container {
  padding: 0.5em 1em;
  text-align: right;
}

/* C4.2 */
.punbb .modmenu strong, .punbb .modmenu a {
  height: 1.8em;
  line-height: 1.8em;
}

/* C4.3 */
.punbb .modmenu .container strong {
  float: left;
}

/* C4.4 */
.punbb .modmenu input {
  margin-left: 1em;
}


/* C5 Message boxes
-------------------------------------------------------------*/

/* C5.1 */
.punbb .info .container {
  padding: 0.8em 1em
}

/* C5.2 */
.punbb .info .container .backlink {
  padding-top: 0.8em;
}


/* C6 Profile
-------------------------------------------------------------*/

/* C6.1 */
#profile .container {
  padding-left: 2.3em;
}

/* C6.2 */
#profilenav {
  display: block;
}

/* C6.3 */
#profilenav li {
  margin-bottom: 0.6em;
  font-weight: bold;
  display: inline-block;
}

#profilenav li a {
  padding: 6px 8px;
  border-radius: 4px;
  text-decoration: none
}

/* C6.4 */
#viewprofile ul, #profilenav ul {
  border-style: solid;
  border-width: 1px;
  padding: 1.5em 18px 0.8em 18px;
  margin: 0 0 1em 0;
}

/* C6.5 */
#viewprofile h2, #profilenav h2 {
  background: transparent;
  border: none;
  padding: 0 0 0 0;
  margin: 0 14px -0.6em 14px;
}

/* C6.6 */
#viewprofile h2 span, #profilenav h2 span {
  padding: 0 5px;
  position: relative;
}

/* C6.7 */
#viewprofile li, #setmods dl {
  padding: 0 0 0 16em;
  margin-bottom: 0.2em;
}

/* C6.8 */
#viewprofile li span {
  float: left;
  width: 14em;
  margin-left: -16em;
  padding: 0.5em 1em;
  font-weight: bold;
}

/*C6.9 */
#setmods dt {
  float: left;
  width: 14em;
  margin-left: -16em;
  padding: 0.8em 1em;
  font-weight: bold;
  display: inline;
}

/* C6.10 */
#viewprofile li strong, #viewprofile li div, #setmods dd {
  display: block;
  padding: 0.5em 1em;
  font-weight: normal;
}

/* C6.11 */
.punbb img.avatardemo {
  float: right;
  margin: 0 0 0.8em 1.8em
}


/* C7 User list
-------------------------------------------------------------*/

/* C7.1 */
#pun-userlist .formal, #pun-userlist .formal .container {
  border-bottom: none;
  margin-bottom: 0;
}

/* C7.2 */
#pun-userlist .usertable .container {
  padding: 0 2.3em 2.3em 2.3em;
  border-top: none;
}

/* C7.3 */
#pun-userlist .usertable table {
  border-style: solid;
  border-width: 1px;
}


/*************************************************************
D - PUNBB SECTIONS OTHER THAN MAIN CONTENT
**************************************************************/

/* D1 Logo and description
-------------------------------------------------------------*/

/* D1.1 */
#pun-title {
  margin: 0;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 122px;
}

/* D1.2 */
#pun-title h1 {
  display: block;
  height: 69px;
  margin: -1px 0px 0px -1px;
}

/* D1.3 */
#pun-title .container {
  border-style: none solid none solid;
  padding: 0.2em 1em 0.8em 1em;
}

/* D1.4 */
#pun-title h1 span {
  font-size: 30px;
  font-weight: 400;
  line-height: 82px;
  text-shadow: rgba(0,0,0,0.3) 0px 2px 0px, rgba(0,0,0,0.15) 0px 0px 3px;
}

#pun-title table {
  border: none;
  height: 69px;
  width: 100%;
  margin: 0 auto;
  max-width: 1200px;
}

#pun-title TD.title-logo-tdl {
  border: none;
  width: 100%;
}

#pun-title TD.title-logo-tdr {
  border: none;
  width: 468px;
  padding-right: 4px;
}

/* D2 Page navigation
-------------------------------------------------------------*/

/* D2.1 */
#pun-pagelinks {
  position: absolute;
  top: -15px;
  left: 0;
  margin: 0;
  border: none;
  padding: 0;
  width: 100%;
}

/* D2.2 */
#pun-pagelinks .container {
  background: transparent;
  border: none;
  padding: 0}

/* D2.3 */
#pun-pagelinks .container li {
  display: inline
}

/* D2.4 */
#pun-pagelinks li a, #pun-pagelinks a:link, #pun-pagelinks a:hover {
  height: 2em;
  line-height: 2em;
  padding: 0;
  font-size: 1.2em;
  margin-left: -9999px;
  display: block;
  float:left;
  width: 100%;
}

/* D2.5 */
#pun-pagelinks a:active, #pun-pagelinks a:focus {
  position:relative;
  margin: 0;
}

#pun-pagelinks li a span {
  display:block;
  margin: 0 1em
}

/* D3 Forum navigation
-------------------------------------------------------------*/

/* D3.1 */
#pun-navlinks {
  position: absolute;
  left: 0;
  right: 0;
  top: 82px;
  height: 40px
}

#pun-navlinks .container {
  display: block;
  margin: 0 auto;
  width: 100%;
  max-width: 1200px;
}

#pun-navlinks, #pun-navlinks .container {
  border: none;
}

#pun-navlinks + div {
  margin-top: 122px;
}

/* D3.2 */
#pun-navlinks .container {
  height: 29px;
  font-weight: bold;
  text-align: left;
  position: relative;
  left: -10px;
}

/* D.3 */
#pun-navlinks li a {
  display: block;
  float: left;
  vertical-align: text-bottom;
  text-align: center;
  outline: 0 none;
  height: 40px;
  line-height: 40px;
  padding: 0 20px;
  font-size: 11px;
}


/* D4 User links
-------------------------------------------------------------*/

/* D4.1 */
#pun-ulinks  {
  margin-top: 0;
}

/* D4.2 */
#pun-ulinks .container {
  padding: 0 1em;
  height: 40px;
  text-align: left;
}

/* D4.3 */
#pun-ulinks li {
  float: left;
  padding: 2px;
}

#pun-ulinks li, #pun-ulinks li a {
  display: inline-block;
  white-space: nowrap;
  font-size: 11px;
}

/* D4.4 */
#pun-ulinks li a {
  padding: 0 10px;
  margin-top: 3px;
  text-decoration: none
}


/* D5 Welcome box and Top Breadcrumbs
-------------------------------------------------------------*/

/* D5.1 */
#pun-status, #pun-status .container {
  border-bottom: none;
  margin-bottom: 0;
}

/* D5.2 */
#pun-status .container {
  padding: 0.8em 1em 1em 1em;
}

/* D5.3 */
#pun-status span {
  white-space: nowrap;
  margin-right: 0.5em;
}

/* D5.4 */
#pun-crumbs1 {
  font-weight: bold;
  overflow: hidden;
  margin-top: 0;
}

/* D5.5 */
#pun-crumbs1 p.container {
  border-top: none;
  padding: 1em 1em 0.8em 1em;
  font-size: 1.1em;
}

/* D5.6 */
#pun-break1 {
  margin: 0 1em;
  border-style: solid none;
  border-width: 1px 0;
  height: 0;
  margin: -2px 1em;
  position: relative;
  z-index: 1;
}

/* D6 Announcement
-------------------------------------------------------------*/

/* D6.1 */
#pun-announcement h2 {
  padding: 0;
  margin: 0 1em -3.5em 1em;
  border-style: none none solid none;
  border-width: 0 0 1px 0;
  position: relative;
  font-weight: bold;
}

/* D6.2 */
#pun-announcement h2 span {
  display: block;
  padding: 1em 0 0.8em 0;
  border-bottom-style: solid;
  border-bottom-width: 1px;
}

/* D6.3 */
#pun-announcement .container {
  padding: 4.3em 1em 1em 1em;
}

/* D7 Statistics
-------------------------------------------------------------*/

/* D7.1 */
#pun-stats .container {
  padding: 0.8em 1em
}

/* D7.2 */
#pun-stats li.item1, #pun-stats li.item2 {
  float: left;
  clear: both;
  line-height: 150%;
}

/* D7.3 */
#pun-stats li.item3, #pun-stats li.item4 {
  text-align: right;
  line-height: 150%;
}

/* D7.4 */
li#onlinelist {
  margin-top: 1em;
  border-top-style: solid;
  border-top-width: 1px;
  float: left;
  width: 100%;
  line-height: 130%;
}

/* D7.5 */
li#onlinelist div {
  border-top-style: solid;
  border-top-width: 1px;
  padding: 0.7em 0 0 0;
}

/* D8 Quick Jump - About - Bottom Breadcrumbs
-------------------------------------------------------------*/

/* D8.1 */
#pun-qjump {
  margin: 0;
  border: none;
  width: 50%;
  position: relative;
  float: left;
}

/* D8.2 */
#pun-qjump .container {
  border: none;
  background: transparent;
  padding: 0.8em 1em;
}

/* D8.3 */
#pun-about {
  margin-top: 0;
}

/* D8.4 */
#pun-about .container {
  border-top-style: none;
  text-align: right;
  line-height: 150%;
  padding: 0.8em 1em;
}

/* D8.5 */
#pun-about p span {
  display:block;
  padding-left: 50%;
}

/* D8.6 */
#pun-crumbs2 {
  font-weight: bold;
  overflow: hidden;
  margin-bottom: 0;
  border-bottom: none;
}

/* D8.7 */
#pun-crumbs2 .container {
  border-bottom: none;
  padding: 0.8em 1em;
  font-size: 1.1em;
}

/* D8.8 */
#pun-break4 {
  margin: -2px 1em;
  border-style: solid none;
  border-width: 1px 0;
  position: relative;
  height: 0;
  z-index: 1;
}

/* D8.9 */
div.punbb-admin #pun-about .container {
  border-top-style: solid;
  border-top-width: 1px;
}


/* D9 Help file
-------------------------------------------------------------*/

/* D9.1 */
#pun-help .formal .info-box h3.legend {
  border-bottom-style: solid;
  border-bottom-width: 1px;
  padding-bottom: 0;
  margin-bottom: 0.8em;
}

/* D9.2 */
#pun-help .formal .info-box h3.legend span {
  padding-bottom: 0.6em;
  display: block;
  border-bottom-style: solid;
  border-bottom-width: 1px;
  font-size: 1.1em;
}

/* D9.3 */
#pun-help .formal p, #pun-help .formal dd {
  margin-bottom: 1em
}

/* D9.4 */
#pun-help .formal ul, #pun-help .formal dl {
  padding: 0 0 0 1em
}

/* D9.5 */
#pun-help .formal li {
  padding: 0;
  line-height: 130%
}

/* D9.6 */
#pun-help .formal li * {
  vertical-align: text-top
}

/* D9.7 */
#pun-help .formal dt span {
  font: 1.4em/120% monaco, "bitstream vera sans mono", "courier new", courier, monospace
}

/* D9.8 */
#pun-help .formal .parsedmsg, #pun-help .formal .parsedmsg .incode {
  padding-bottom: 0;
}


/* D10 Links in right column
-------------------------------------------------------------*/

/* D10.1 */
.punbb .main .tcr a {
  /*margin-right: 7px;*/
}

#pun-searchtopics .main .tcr a,
.en #pun-viewforum .main .tcr a {
  /*margin-right: 11px;*/
}

.punbb .main .tcr a:after {
  content: "";
  /*position: absolute;*/
  margin-left: .2em;
  /*margin-top: .2em;*/
  font-size: 1.2em;
  font-family: serif, use-lang-def;
  font-weight: 700;
}


/* D11 Post form
-------------------------------------------------------------*/

/* D11.1 */
#post {
  margin: 0;
  padding: 0;
}

/* D11.2 */
#post fieldset {
  border: none;
}

/* D11.3 */
#post legend {
  display: none;
}

/* D11.4 */
#post .formsubmit {
  padding: 0 1.5em 1.4em 2.5em;
  margin: 0 !important;
}

/* D11.5 */
#post .fs-box.hashelp, #post .fs-box .areafield {
  padding-bottom: 0;
}

/* D11.6 */
#post #main-reply {
  width: 99.5%;
  width: calc(100% - 6px);
}

/* D12 Other sections and content
-------------------------------------------------------------*/

/* D12.1 */
.punbb > .section[style], .punbb > .main > .section[style] {
  overflow: hidden;
}

/* D12.2 */
#pun-admain textarea {
  font-family: Courier new, monospace !important;
  font-size: 13px !important;
}


/*************************************************************
E - STYLE CORRECTION FOR SMALLER SCREENS
**************************************************************/

/* E1 Main content correction
-------------------------------------------------------------*/

/* E1.1 */
@media screen and (max-width: 540px) {

  html, html body,
  #pun_wrap #pun, #pun .punbb {
    height: auto !important;
    max-height: 100%;
  }

  .punbb .html-box {
    padding: 0 !important;
  }

  #pun-title {
    position: relative;
    height: 132px;
    text-align: center;
    font-size: 26px;
  }

  #pun-navlinks {
    height: 50px;
  }

  #pun .punbb #pun-navlinks .container {
    padding: 1px 0 !important;
    left: 0 !important;
    height: 50px !important;
  }

  #pun-navlinks li, #pun-navlinks li a {
    float: none;
    clear: both;
    display: inline-block;
  }

  #pun-ulinks li, .punbb #pun-ulinks li a, .punbb #pun-ulinks li a:hover {
    border-bottom: none 0 transparent !important;
    border-radius: 0px !important;
    display: block;
    float: none;
  }

  .punbb table div.icon {
    opacity: .3;
    display: block !important;
    height: 25px;
    width: 0px !important;
    border-left: solid 3px #336699;
    margin-top: 0;
    margin-left: 0 !important;
    margin-right: 10px !important;
  }

  .punbb table tr.isticky div.icon, .punbb table tr.inewisticky div.icon {
    border-left: solid 3px #EC2D2D !important;
  }

  .punbb table tr[class$="inew"] div.icon {
    opacity: 1.0 !important;
  }

  #pun .punbb .main tbody tr:not(:last-child) td {
    border-bottom: solid 1px rgb(232, 237, 245) !important;
  }

  #button-font,
  #button-strike,
  #button-left,
  #button-right,
  #button-center,
  #button-table,
  #button-keyboard {
    display: none;
  }

  form .button, input[type="submit"] {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .post-content table td {
    border: solid 1px rgb(232, 237, 245) !important;
    border-collapse: collapse;
  }

}

/* E1.2 */
@media screen and (min-width: 761px) and (max-width: 900px) {

  #pun-viewforum.punbb .forum .tc2, #pun-viewforum.punbb .forum .tc3,
  .punbb .category .tc2, .punbb .category .tc3 {
    padding-left: 20% !important;
  }

  #pun-navlinks li a {
    padding: 0 10px;
  }

  #pun-ulinks li a {
    padding: 0 4px;
  }

}

/* E1.3 */
@media screen and (min-width: 541px) and (max-width: 760px) {

  #pun-viewforum.punbb .forum .tc2, #pun-viewforum.punbb .forum .tc3,
  .punbb .category .tc2, .punbb .category .tc3 {
    padding-left: 0 !important;
    min-width: 104px;
  }

  #pun-navlinks li a {
    padding: 0 8px;
  }

  #pun-ulinks li.item3 {
    display: none;
  }

  #pun-ulinks li a {
    padding: 0 3px;
  }

}

/* E1.4 */
@media screen and (min-width: 541px) and (max-width: 1220px) {

  #pun-title {
    padding: 0 0 0 1.1em;
  }

  #pun-navlinks .container {
    left: 0;
  }

  #pun-ulinks .container {
    padding: 0 .8em;
  }

}

/* Spoiler box
-------------------------------------------------------------*/

spoiler-box {
  display: block;
  margin: 8px 0;
}

spoiler-box .spoiler-header {
  cursor: pointer;
  user-select: none;
  background-color: #e9e3d5;
  border: 1px solid #d1bc9b;
  border-radius: 4px;
  padding: 6px 10px;
  font-size: 0.9em;
  color: #333;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: background-color 0.2s;
}

spoiler-box .spoiler-header::before {
  content: '▶';
  font-size: 0.7em;
  color: #9c7d58;
  transition: transform 0.3s ease;
  display: inline-block;
}

spoiler-box .spoiler-header.open::before {
  transform: rotate(90deg);
}

spoiler-box .spoiler-header:hover {
  background-color: #d1bc9b;
}

/* Blockquote
-------------------------------------------------------------*/

blockquote {
  margin: 8px 0;
  border-left: 3px solid #9c7d58;
  background-color: #fcfaf2;
  border-radius: 0 4px 4px 0;
  padding-left: 5px;
}

blockquote cite {
  display: block;
  padding: 5px 10px 4px;
  font-style: normal;
  font-size: 0.85em;
  color: #333;
  font-weight: bold;
  border-bottom: 1px solid #e9e3d5;
}

blockquote p, blockquote > *:not(cite) {
  padding: 6px 10px 6px 16px;
  margin: 0;
  color: #333;
  font-size: 0.95em;
}

/* Spoiler box
-------------------------------------------------------------*/

spoiler-box .spoiler-content {
  height: 0;
  overflow: hidden;
  transition: height 0.35s ease-in-out, padding 0.35s ease-in-out;
  border: 1px solid #d1bc9b;
  border-top: none;
  border-radius: 0 0 4px 4px;
  padding: 0 10px;
}

.widget-grid {
  display: grid;
}

.widget-grid--cols-3 {
  grid-template-columns: repeat(3, 1fr);
}

.widget-grid__name {
  text-align: center;
  font-weight: bold;
}

.widget-grid__field img {
  max-width: 100%;
}

span.mention {
  color: #9c6a1a;
  font-weight: bold;
}

.button.btn-activate {
  background-color: #4a7c4a;
  border-color: #3a6a3a;
  color: #fff;
}

.button.btn-activate:hover {
  background-color: #3a6a3a;
}

.button.btn-deactivate {
  background-color: #c0392b;
  border-color: #a93226;
  color: #fff;
}

.button.btn-deactivate:hover {
  background-color: #a93226;
}

.modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1000;
}

.modal-content {
  background: white;
  padding: 20px;
  border-radius: 8px;
  width: 400px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.modal-content h2 {
  margin-top: 0;
}

.modal-content .buttons {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
}

.modmenu {
  margin-bottom: 10px;
}

.modmenu .container {
  padding: 10px;
  border: 1px solid #ccc;
  background-color: #f9f9f9;
}

.modmenu a {
  margin-left: 5px;
  text-decoration: none;
  font-weight: bold;
}

.modmenu a:hover {
  text-decoration: underline;
}

.group4 {
  color: #0066b3;
}

/* Character sheet header */

.character-sheet-header {
  display: flex;
  gap: 20px;
  padding: 20px;
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 8px;
  margin-bottom: 20px;
}

.character-sheet-avatar {
  flex-shrink: 0;
  width: 150px;
}

.character-sheet-avatar img {
  width: 100%;
  height: auto;
  border-radius: 8px;
}

.character-sheet-info {
  flex: 1;
}

.character-name-row {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 10px;
}

.character-sheet-info h2 {
  margin: 0;
  font-size: 2em;
  color: #333;
}

.status-badge {
  padding: 4px 8px;
  border-radius: 4px;
  font-size: 0.8em;
  font-weight: bold;
  text-transform: uppercase;
}

.status-pending {
  background-color: #fff3cd;
  color: #856404;
  border: 1px solid #ffeeba;
}

.status-active {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.status-inactive {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

.character-sheet-factions h3,
.character-sheet-custom-fields h3 {
  font-size: 1.2em;
  color: #444;
  border-bottom: 2px solid #eee;
  padding-bottom: 5px;
  margin-bottom: 10px;
}

.character-sheet-factions ul,
.character-sheet-custom-fields ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.character-sheet-factions li,
.character-sheet-custom-fields li {
  margin-bottom: 10px;
}

.admin-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 20px;
  padding: 10px;
  background-color: #f1f1f1;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.admin-actions-notice {
  color: #856404;
  font-size: 0.9em;
}

.button {
  padding: 8px 16px;
  background-color: #007bff;
  color: white;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  font-size: 1em;
}

.button:hover {
  background-color: #0056b3;
}

.button:disabled {
  background-color: #b0c4de;
  color: #6c757d;
  cursor: not-allowed;
  opacity: 0.65;
}

.wanted-character-header {
  padding: 20px;
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 8px;
  margin-bottom: 20px;
}

.wanted-character-header h2 {
  margin: 0 0 15px;
  font-size: 2em;
  color: #333;
  display: flex;
  align-items: center;
  gap: 10px;
}

.wanted-character-factions h3,
.wanted-character-custom-fields h3 {
  font-size: 1.2em;
  color: #444;
  border-bottom: 2px solid #eee;
  padding-bottom: 5px;
  margin-bottom: 10px;
}

.wanted-character-factions ul,
.wanted-character-custom-fields ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.wanted-character-factions li,
.wanted-character-custom-fields li {
  margin-bottom: 10px;
}

.episode-header {
  display: flex;
  gap: 20px;
  padding: 20px;
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 8px;
  margin-bottom: 20px;
}

.episode-info {
  flex: 1;
}

.episode-info h2 {
  margin-top: 0;
  font-size: 2em;
  color: #333;
  display: flex;
  align-items: center;
  gap: 10px;
}

.episode-characters h3,
.episode-custom-fields h3 {
  font-size: 1.2em;
  color: #444;
  border-bottom: 2px solid #eee;
  padding-bottom: 5px;
  margin-bottom: 10px;
}

.character-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.character-item {
  display: flex;
  align-items: center;
  gap: 8px;
  background-color: #fff;
  padding: 5px 10px;
  border: 1px solid #ccc;
  border-radius: 4px;
}

.character-link {
  text-decoration: none;
  color: #007bff;
  font-weight: bold;
}

.character-link:hover {
  text-decoration: underline;
}

.episode-custom-fields ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.episode-custom-fields li {
  margin-bottom: 10px;
}

.ep-fld {
  margin-bottom: 10px;
}

/* === topic-create.component === */
.post-editor-container {
  display: flex;
  gap: 15px;
  align-items: flex-start;
  margin-top: 10px;
}

.profile-sidebar {
  flex: 0 0 180px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px;
}

.textarea-wrapper {
  flex: 1;
}

.avatar-box img {
  max-width: 150px;
  max-height: 150px;
  display: block;
  margin: 0 auto;
}

.identity-name {
  margin: 5px 0;
}

/* === episode-list.component === */
.dashboard-layout {
  display: flex;
  gap: 20px;
  margin-top: 15px;
}

.filter-sidebar {
  flex: 0 0 250px;
  padding: 15px;
}

.filter-group {
  margin-bottom: 20px;
}

.checkbox-list {
  max-height: 150px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.autocomplete-wrapper {
  position: relative;
}

.autocomplete-wrapper input {
  width: 100%;
  padding: 8px;
  box-sizing: border-box;
}

.suggestions-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  max-height: 200px;
  overflow-y: auto;
  z-index: 100;
}

.suggestion-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px;
  cursor: pointer;
}

.suggestion-item img {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  object-fit: cover;
}

.selected-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 8px;
}

.tag {
  padding: 4px 8px;
  border-radius: 12px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.tag i {
  cursor: pointer;
}

.table-area {
  flex: 1;
}

.search-bar {
  margin-bottom: 15px;
}

.search-bar input {
  width: 97%;
  padding: 10px;
}

.episode-table {
  width: 100%;
}

.episode-table th {
  padding: 10px;
  text-align: left;
}

.episode-table td {
  padding: 12px 10px;
}

.character-avatars {
  display: flex;
  gap: 5px;
}

.character-avatars img {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  cursor: pointer;
}

.status-badge {
  padding: 3px 8px;
  border-radius: 12px;
}

/* === episode-create.component (post-form duplicate) === */

/* === toast.component === */
.toast-overlay {
  position: fixed;
  top: 20px;
  left: 20px;
  z-index: 10000;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.toast-item {
  width: 300px;
  display: flex;
}

.toast-side-accent {
  width: 4px;
}

.toast-main {
  padding: 8px 10px;
  flex: 1;
}

.toast-header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
  padding-bottom: 2px;
}

.toast-sender {
  margin-right: 5px;
}

.toast-close {
  padding: 5px 8px;
  cursor: pointer;
  align-self: flex-start;
}

.currency-icon {
  width: 1em;
  height: 1em;
  vertical-align: middle;
  object-fit: contain;
}

/* === short-text-field-display.component === */
app-short-text-field-display:host {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* === number-field-display.component === */
app-number-field-display:host {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* === settings.component === */
.avatar-setting {
  display: flex;
  align-items: center;
  gap: 20px;
}

.current-avatar img {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
}

.avatar-input {
  flex: 1;
}

/* === user-list.component === */
.character-list-vertical {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* === register.component === */
.password-group {
  position: relative;
  display: block;
}

.password-group input {
  padding-right: 50px;
}

.toggle-password {
  position: absolute;
  right: 5px;
  top: 50%;
  transform: translateY(-50%);
  padding: 2px 5px;
}

.alert-error {
  padding: 10px;
  margin-bottom: 15px;
}

/* === faction-create-modal.component === */
.form-group {
  margin-bottom: 15px;
}

.faction-modal-label {
  display: block;
  margin-bottom: 5px;
}

.faction-modal-input,
.faction-modal-textarea {
  width: 100%;
  padding: 8px;
  box-sizing: border-box;
}

.buttons {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
}

/* === viewforum.component === */

/* === mask-list.component === */
.mask-list-container {
  margin: 1.5rem 0;
}

.mask-table {
  width: 100%;
  border-collapse: collapse;
  margin-top: 1rem;
}

.mask-table th,
.mask-table td {
  padding: 0.75rem;
  text-align: left;
}

.mask-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
}

.no-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* === recovery-codes.component === */
.warn-message {
  padding: 12px 16px;
  margin: 10px 0;
  line-height: 1.6;
}

.recovery-code-list {
  list-style: none;
  padding: 0;
  margin: 10px 0;
}

.recovery-code {
  padding: 6px 0;
}

/* === characterview.component === */
.char-sheet-layout {
  display: flex;
  gap: 30px;
  padding: 20px;
}

.char-portrait {
  width: 250px;
  flex-shrink: 0;
}

.portrait-frame img {
  width: 100%;
  padding: 4px;
}

.char-meta-sidebar {
  margin-top: 15px;
  line-height: 1.6;
}

.pm-button {
  margin-top: 10px;
  width: 100%;
}

.char-data {
  flex: 1;
}

.char-name-title {
  margin-bottom: 20px;
  padding-bottom: 10px;
}

.char-fields-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
  margin-bottom: 25px;
}

.field-item {
  padding: 8px 12px;
}

.field-item .label {
  display: block;
}

.char-biography h3 {
  margin-bottom: 10px;
}

.char-activity-table {
  width: 100%;
  border-collapse: collapse;
}

.char-activity-table th,
.char-activity-table td {
  padding: 10px;
  text-align: left;
}

.char-group-path {
  margin-top: -10px;
  margin-bottom: 20px;
  padding: 5px 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* === direct-chat.component === */
.pm-container {
  display: flex;
}

.pm-sidebar {
  width: 280px;
  overflow: visible;
}

.pm-sidebar .main-item {
  overflow-y: auto;
}

.pm-contact {
  padding: 10px;
  cursor: pointer;
  display: flex;
  align-items: center;
}

.new-chat-block {
  padding: 8px;
  display: flex;
  gap: 6px;
  align-items: center;
}

.new-chat-autocomplete {
  position: relative;
  flex: 1;
}

.new-chat-input {
  width: 100%;
  box-sizing: border-box;
}

.autocomplete-dropdown {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  z-index: 10;
}

.autocomplete-dropdown li {
  padding: 6px 10px;
  cursor: pointer;
}

.unread-badge {
  margin-left: auto;
  min-width: 20px;
  height: 20px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
}

.pm-history {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.pm-no-chat {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.history-scroll {
  height: 500px;
  overflow-y: auto;
  padding: 10px;
}

.load-older-loader {
  display: flex;
  justify-content: center;
  padding: 8px 0;
}

.loader-spinner {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: inline-block;
}

.pm-history .post {
  margin-bottom: 10px;
}

.pm-history .post-body {
  margin-left: 0 !important;
}

#pm-form-buttons td {
  width: 23px;
  height: 22px;
  cursor: pointer;
  display: table-cell;
  text-align: center;
}

.pm-input {
  padding: 10px;
}

.pm-input textarea {
  width: 100%;
  padding: 5px;
  resize: none;
}

/* === image-upload.component === */
.entries {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.entry {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 36px;
}

.entry input[type="file"] {
  flex: 1;
}

.btn-remove {
  padding: 0 4px;
  cursor: pointer;
  line-height: 1;
}

.loader-row {
  display: flex;
  align-items: center;
  gap: 10px;
}

.loader {
  display: inline-block;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  flex-shrink: 0;
}

.result-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
}

.thumbnail-preview {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}

.insert-links {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.error-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
}

.actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.actions-right {
  display: flex;
  gap: 8px;
}

/* === not-found.component === */
/* === forbidden.component === */
/* === server-error.component === */
.error-page {
  display: flex;
  justify-content: center;
  padding: 2rem;
}

.error-page img {
  max-width: 100%;
  height: auto;
}

/* === post-page.component === */
.page-content {
  padding: 1rem;
}

/* === preview.component === */
.preview-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.75rem 1rem;
  margin-bottom: 1rem;
}

.preview-post-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1rem;
}

/* === bb-toolbar.component === */
#form-buttons td {
  width: 23px;
  height: 22px;
  cursor: pointer;
  display: table-cell;
  background-repeat: no-repeat;
  background-position: center;
}

.spoiler-modal-backdrop {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
}

.spoiler-modal {
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 260px;
}

.spoiler-modal p {
  margin: 0;
}

.spoiler-modal input {
  padding: 5px 8px;
}

.spoiler-modal-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.spoiler-modal-actions button {
  padding: 4px 12px;
  cursor: pointer;
}

/* === post-form.component === */
.post-editor-form-container {
  display: flex;
  gap: 15px;
  align-items: flex-start;
  margin-top: 10px;
}

.post-form-textarea-wrapper {
  flex: 1;
  position: relative;
}

.mention-dropdown {
  position: absolute;
  bottom: 100%;
  left: 0;
  right: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  z-index: 100;
  max-height: 160px;
  overflow-y: auto;
}

.mention-dropdown li {
  padding: 6px 10px;
  cursor: pointer;
}

/* === faction-paths.component === */
.faction-field {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 1rem;
  align-items: center;
}

.faction-field select {
  flex: 1;
}

.faction-field button {
  padding: 0.25rem 0.75rem;
}

/* === image-field.component === */
.mode-toggle {
  display: flex;
  margin-bottom: 0.5rem;
}

.mode-toggle button {
  padding: 0.25rem 0.75rem;
}

.mode-toggle button:last-child {
  border-left: none;
}

.upload-section {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.btn-upload {
  align-self: flex-start;
  padding: 0.25rem 0.75rem;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.upload-status {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.preview {
  max-width: 120px;
  max-height: 80px;
  border-radius: 4px;
}

.spinner {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}

/* === image-field-display.component === */
.field-value--image {
  max-width: 100%;
}

/* === wanted-character-list.component === */
.wanted-dashboard-layout {
  display: flex;
  gap: 20px;
  margin-top: 15px;
}

.wanted-filter-sidebar {
  flex: 0 0 220px;
  padding: 15px;
  align-self: flex-start;
}

.view-toggle {
  display: flex;
  gap: 6px;
  margin-bottom: 18px;
}

.view-toggle .button {
  flex: 1;
  padding: 5px 0;
  cursor: pointer;
}

.content-area {
  flex: 1;
  min-width: 0;
}

.card-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.wanted-card {
  padding: 14px;
  width: 100%;
  box-sizing: border-box;
  position: relative;
  max-height: 350px;
  overflow: hidden;
}

.wanted-card--expanded {
  max-height: none;
}

.wanted-card--expanded .card-show-more {
  display: none;
}

.card-show-more {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 80px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 10px;
  cursor: pointer;
}

.card-hide {
  text-align: center;
  margin-top: 8px;
}

.card-hide span {
  cursor: pointer;
}

.card-fields {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.wanted-table {
  width: 100%;
  border-collapse: collapse;
}

.wanted-table th {
  padding: 10px;
  text-align: left;
}

.wanted-table td {
  padding: 10px;
}

/* === user-profile.component === */
.user-minimal-info {
  display: flex;
  gap: 20px;
  padding: 15px;
  align-items: center;
}

.user-avatar img {
  width: 100px;
  height: 100px;
  padding: 2px;
}

.tc2 {
  width: 25%;
}

.tc3 {
  width: 10%;
  text-align: center;
}

.tclcon {
  display: flex;
  align-items: center;
  gap: 8px;
}

.profile-actions {
  display: flex;
  gap: 12px;
  align-items: center;
}

/* === character-profile-edit.component === */
.btn-save {
  padding: 0.5rem 1.25rem;
  min-width: 90px;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.btn-save:disabled {
  cursor: not-allowed;
}

/* === character-profile.component === */
.author-mention {
  cursor: pointer;
}

/* === cropped-image-field.component === */
.cropped-mode-toggle {
  display: flex;
  margin-bottom: 0.5rem;
}

.cropped-mode-toggle button {
  padding: 0.25rem 0.75rem;
}

.cropped-mode-toggle button:last-child {
  border-left: none;
}

.cropped-upload-section {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.crop-container {
  position: relative;
  overflow: hidden;
  cursor: crosshair;
  user-select: none;
}

.crop-container img {
  display: block;
  pointer-events: none;
}

.overlay {
  position: absolute;
  pointer-events: none;
}

.crop-box {
  position: absolute;
  cursor: move;
  box-sizing: border-box;
}

.resize-handle {
  position: absolute;
  bottom: -5px;
  right: -5px;
  width: 12px;
  height: 12px;
  cursor: se-resize;
}

.crop-actions {
  display: flex;
  gap: 0.5rem;
}

.btn-crop {
  padding: 0.35rem 0.9rem;
  border: none;
  border-radius: 4px;
  cursor: pointer;
}

.btn-cancel {
  padding: 0.35rem 0.9rem;
  border-radius: 4px;
  cursor: pointer;
}

.cropped-upload-status {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.cropped-preview {
  max-width: 120px;
  max-height: 80px;
  border-radius: 4px;
}

.cropped-spinner {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  display: inline-block;
  flex-shrink: 0;
}

/* === viewtopic.component === */
.topic-full-banner {
  margin-top: 1em;
  padding: 0.85rem 1.25rem;
  border-radius: 4px;
}

.post-link-btn {
  display: inline !important;
  margin-left: 0 !important;
  padding: 0 !important;
  cursor: pointer;
  margin-right: 2px;
}

.page-ellipsis {
  margin: 0 2px;
}

/* === navlinks.component === */
#pun-ulinks .container {
  display: flex;
}

.navlink-inactive {
  cursor: default;
}

/* === scroll-nav.component === */
.scroll-nav-btn {
  position: fixed;
  right: max(10px, calc((100vw - 1200px) / 2 - 40px));
  top: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 0;
  border: none;
  cursor: pointer;
  z-index: 9999;
}
.scroll-nav-up {
  transform: translateY(calc(-50% - 20px));
}
.scroll-nav-down {
  transform: translateY(calc(-50% + 20px));
}
.scroll-nav-btn svg {
  width: 18px;
  height: 18px;
}

.post-content pre {
  max-width: 100%;
  overflow: scroll;
}

/* Post reactions */
.post-reactions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--border-color, #ccc);
}

.reaction-chip {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px 2px 4px;
  border: 1px solid var(--border-color, #ccc);
  border-radius: 12px;
  cursor: default;
  font-size: 0.85em;
  background: var(--bg-secondary, #f5f5f5);
}

.reaction-img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

.reaction-count {
  font-weight: 600;
  min-width: 12px;
  text-align: center;
}

.reaction-tooltip {
  display: none;
  position: absolute;
  bottom: calc(100% + 6px);
  left: 0;
  background: var(--bg-main, #fff);
  border: 1px solid var(--border-color, #ccc);
  border-radius: 6px;
  padding: 6px 10px;
  white-space: nowrap;
  z-index: 100;
  flex-direction: column;
  gap: 4px;
  font-size: 0.9em;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}

.reaction-chip:hover .reaction-tooltip {
  display: flex;
}

.reaction-tooltip a {
  color: inherit;
  text-decoration: underline;
}

.reaction-add-wrapper {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.reaction-add-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 0;
  border: 1px dashed var(--border-color, #ccc);
  border-radius: 12px;
  background: transparent;
  cursor: pointer;
  font-size: 1em;
  line-height: 1;
  color: inherit;
  opacity: 0.6;
  transition: opacity 0.15s;
}

.reaction-add-btn:hover {
  opacity: 1;
}

.reaction-picker {
  position: absolute;
  bottom: calc(100% + 6px);
  left: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 6px;
  background: var(--bg-main, #fff);
  border: 1px solid var(--border-color, #ccc);
  border-radius: 8px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.15);
  z-index: 101;
  min-width: 120px;
  max-width: 240px;
}

.reaction-picker-item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  padding: 4px;
  border: 1px solid transparent;
  border-radius: 6px;
  background: transparent;
  cursor: pointer;
  transition: background 0.1s, border-color 0.1s;
}

.reaction-picker-item:hover {
  background: var(--bg-secondary, #f0f0f0);
  border-color: var(--border-color, #ccc);
}

.reaction-picker-item img {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

.reaction-picker-backdrop {
  position: fixed;
  inset: 0;
  z-index: 100;
}
