
@font-face {
	font-family: "Trebuchet MS";
	font-size: 16px;
	line-height: 1.6;
	font-weight: 400;
	letter-spacing: -0.45px;
	word-spacing: 0.4px;
}
@font-face {
	font-family: "Lato-fallback";
	size-adjust: 97.38%;
	ascent-override: 99%;
	src: local("Arial");
}
:root{
   --header-height: 80px;
   --grid-gap:16px;
	--header-background:#fff;
	--a-color: #1a5bc1;
	--a-color-hover: #000;
	--text-color: #333;
	--button-color: #1a5bc1;
	--button-hover-color: #2577dd;
	--bgimage: #fff url();
	--logo-color: #fff;
	--navigation-color-a: #fff;
	--navigation-color-menu: #fff;
	--navigation-color-dropmenu-a: #333;
	--aside-color-a: #fff;
	--aside-color-a-hover: #2577dd;
	--aside-color-li-hover:#f5f6f8;
	--aside-width: 230px;
}
@media only screen and (max-width: 768px) {
	:root{
		--navigation-color-a: #333;
		--aside-color-li-hover:none
	}
	body{
      -webkit-tap-highlight-color: transparent;
      -webkit-touch-callout: none; 
      -webkit-user-select: none;   
      user-select: none;   
   }
}body, html{
   background: var(--bgimage);
   background-size: cover;
   background-attachment: fixed;
   background-position: center center;
   margin:0;
   padding:0;
   font-family:"Lato",  "Lato-fallback", Tahoma;
   font-display:swap;
   font-size:20px;
   margin:0 auto;
}
body:has(.main-min){
   background: #f7f7f8
}
:root {
   --visual-vh: 100vh;
   --keyboard-offset: 0px;
 }
header{
   background:var(--header-background);
   color:#000;
   position:fixed;
   left:0;
   top:0;
   right:0;
   height:var(--header-height);
   padding:0 20px;
   z-index:100000000;
   border-bottom: 1px #f0f0f0 solid;
   display:flex; align-items:stretch; align-content:center; gap:40px;
}
#inviteModal{
   z-index:100000000000 !important;
}
#mbody{
   padding:var(--grid-gap);
}
.user header li a{
   color: #fff;
   background:#4A4A4A;
   border-radius:100px;
   display:flex;
   align-items:center;
   justify-content: center;
   width:32px;
   height:32px;
}
.user .navigation-inline{
   gap:8px;
}
@media only screen and (min-width: 768px) {
   .user header{
      left:var(--aside-width)
   }
}
main{
   min-height:400px
}
main:not(.main-min){
   top:var(--header-height);
}
main.main-min .main-head{
   position:sticky;
   background:#fff;
   z-index: 10000000;
   top:0;
   padding:0 12px;
   border-bottom:1px #eee solid;
   height:var(--header-height);
}
main.main-min .inner{
   max-width:900px;
   padding:24px 20px 60px;
}
main.main-min .detail-tabs{
   background:#f7f7f8
}
main.main-min .exit{
   margin-right:24px;
}
main.main-min{
}
.inner{
   width: calc(100vw - 40px);
   margin-left:auto;
   margin-right:auto;
   padding-top:30px;
   max-width:900px
}
ul, li{
   margin:0;
 }
a{
	color: var(--a-color);
	text-decoration:underline;
   -webkit-user-drag: none;
}
a:hover{
	color: var(--a-color-hover);
}
hr{
   border: none;
   border-bottom: 5px solid #f0f1f4 !important;
   margin-top: 20px;
   margin-bottom: 20px;
   width:100%;
   position: relative;
}
h1,h2,h3,h4,h5,h6{
   margin:0 0 .75em;
   padding:0;
   line-height:1.5em;
   color:var(--text-color);
}
p{
   margin:0;
   padding:0;
   font-size:inherit;
   color:var(--text-color);
   line-height:1.5em;
}
li{
   font-size:inherit;
   color:var(--text-color);
}
article p:not(:empty){
   margin-bottom:20px;
}
.material-symbols-outlined{
   vertical-align: bottom;
   font-size: 1.2em !important;
   top: 0px;
   position: relative;
   text-align:center;
}
@media print {
	@page {size: landscape}
	header{
		display: none;
	}
}
.inner{
   max-width:1200px;
   margin:0 auto;
   box-sizing: border-box;
   width:100%
}
.hidden{
   display:none !important
}
.main-head{
   display:flex; 
   gap:20px; 
   align-items: center; 
   padding-bottom:16px;
   justify-content: space-between;
}
.main-head h1{
   margin:0;
   padding:0
}
.main-head > *{
   width:auto !important
}
.main-head .create{
   height:36px;
}
.main-head .create:before{
   content: "add";
   font-family: "Material Symbols Outlined";
   top: 1px !important;
   position: relative;
}
aside + main{
   max-width:calc(100vw - var(--aside-width)); 
   margin-left: var(--aside-width);
   margin-top: var(--header-height);
}
aside{
   display: block;
   align-items: flex-start;
   position: fixed; 
   left: 0; 
   top: 0; 
   width: var(--aside-width); 
   height:100%; 
   padding:16px; 
   box-sizing: border-box; 
   z-index:100;
   z-index:1000000000;
   overflow-y: auto;
   overflow-x: hidden;
   background:linear-gradient(90deg, #ffffff, #fafafa);
   border-right:1px #eee solid;
}
aside .logo{
   padding:6px;
   margin-bottom:12px;
}
@media only screen and (max-width: 768px) {
   .desktop-only{
      display:none !important
   }
   header{
      justify-content: space-between;
      align-items:center
   }
   .mobile-browser-only{
      display:flex !important
   }
   main{
      max-width:none !important;
      margin-left:auto !important;
   }
   aside{
      display:none !important;
      width: 100% !important;
      position:fixed;
      left:0;
      right:0;
      align-items:unset
   }
   .aside-open aside{
      display:grid !important;
      padding-top:60px !important
   }
}
button,
input[type='submit'],
input[type='button'],
.button{
   background:var(--button-color);
   border:none;
   color:#fff;
   padding:10px 15px;
   border-radius:6px;
   cursor:pointer;
   font-size:16px;
   line-height:16px;
   font-family:inherit;
   height:40px;
   align-items:center;
   text-decoration:none;
   box-sizing:border-box;
   text-align:center;
   white-space:nowrap;
   width:100%;
   display:inline-grid;
   justify-content: center;
   grid-auto-flow: column;
   gap:5px;
   position:relative
}
button:hover, 
input[type='submit']:hover, 
.button:hover
{
   background:var(--button-hover-color);
   color:#fff;
}
input[type=submit][disabled=disabled] {
   opacity: .5
}
a.button{
   padding:0 12px
}
form{
   padding:0;
   font-family:inherit;
   margin:0 auto;
   display:grid;
   gap:var(--grid-gap);
}
input[type=text],
input[type=email],
input[type=url],
input[type=date],
input[type=password],
input[type=number],
input[type=tel],
input[type=range],
input[type=datetime-local],
input[type=time],
input[type=search],
input:-webkit-autofill,
select,
textarea,
.textarea,
.input,
.fake-input{
   padding:0 12px;
   border-radius:3px;
   width:100%;
   height:40px;
   display:grid;
   font-family:inherit;
   font-size:16px;
   line-height:16px;
   resize:none;
   box-sizing: border-box;
   grid-auto-flow: column;
   justify-content: space-between;
   outline:none;
   background:#fff !important;
   border:1px #ccc solid;
   cursor:pointer;
}
form input[type=date]{
   appearance: none;
   background:#fff;
   color:inherit
}
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0px 1000px #ffffff inset !important;
}
input[readonly], input[readonly]:focus{
   cursor:default;
   background:#ebebeb;
   border:1px #e1e1e1 solid !important;
}
input[type=password] + div{
   display: none;
   position: absolute;
   right: 10px;
   top: -14px;
   height: 15px;
   padding: 5px 8px;
   font-size: 12px;
   background: #fcfcfc;
   border: 1px solid #333;
   border-radius: 12px;
}
label:has(input[type=password]):hover > div{
   display:block
}
input[type=password] + div:empty{
   display: none !important;
}
a[onclick] ~ input[type=text]{
   padding-right:75px
}
form input[type=text]:focus,
form input[type=number]:focus,
form input[type=password]:focus,
form input[type=date]:focus,
form select:focus, 
form textarea:focus{
   border:1px #5b5b5b solid
}
#mkninput{
   width:0;
   height:0;
   overflow:hidden;
}
form input[type=text]:disabled{
   background-color: #f6f6f6;
   cursor:not-allowed
}
select{
   background: #fff url(https://d1b21banxzhuc6.cloudfront.net/images/arrows.png) no-repeat right 10px center !important;
   -webkit-appearance: none;
   -moz-appearance: none;
   padding-right:30px;
}
form input[type='radio']{
   display: inline-block;
   width: 20px;
   height: 20px;
   vertical-align: middle;
}
select[multiple]{
   min-height:100px;
   background-image:none;
   padding:8px !important
}
@media only screen and (max-width: 768px) and (hover: none) {
   form select[multiple]{
      min-height: auto;
   }
}
@media only screen and (max-width: 400px){
   form select[multiple]{
      min-height: auto;
   }
}
textarea{
   min-height:88px;
   padding:12px;
   height:auto
}
form label{
   display:block;
   position:relative;
   font-size:16px;
}
form > label:last-child{
   padding-bottom:0
}
form label > span{
   display:block;
   font-size:16px;
   padding-bottom:8px;
}
form label span{}
form label span:empty{
   padding:0;
}
form label span:after{
   content: attr(data-name);
   font-size: 9px;
   position: absolute;
   color: rgba(0, 0, 0, .65);
   transition: all 0.1s ease;
   font-size: 16px;
   left: 13px;
   top: 10px;
   opacity:1;
   white-space:nowrap;
   cursor:pointer;
   max-width: calc(100% - 26px);
   overflow: hidden;
}
form label:has(span:empty) input::placeholder{
   opacity:0
}
form label span:empty:has(+ input:not(:placeholder-shown)):after,
form label span:empty:has(+ .fake-input > input:not(:placeholder-shown)):after,
form label span:empty:has(+ .fake-input > .clicktoremove):after
{
   font-size:9px;
   left: 10px;
   padding: 0 4px;
   background: none;
   top: -5px;
   display:block;
   opacity:1;
   position:absolute;
   background:#fff 
}
.error-message{
   color:red;
}
.error-message:empty{
   display:none
}
.button-floater {
   position: absolute;
   right: 0;
   border-radius: 0;
   top:28px;
}
.input-drop{
   position: absolute;
   left: 0;
   top: auto;
   background: #fff;
   z-index: 1000;
   width: 100%;
   box-shadow: 0 8px 24px rgba(0,0,0,0.1);
   max-height: 320px;
   overflow-y: auto;
   border: 1px solid #e0e0e0;
   border-radius:12px;
}
.input-drop:empty{
   display:none !important
}
.input-drop .dd-item {
   display: block;
   padding: 8px;
   font-weight: 400;
   border-bottom: 1px solid #eee;
   color: var(--a-color);
   white-space: nowrap;
   overflow: hidden;
   text-overflow: ellipsis;
   font-size: 16px;
   cursor: pointer;
   user-select: none
}
.disabled,.input-drop .dd-item.active,.selector .dropdown a:hover {
   background: #eee
}
.input-drop .dd-item:hover {
   background: #fafafa
}
div.input {
   height: auto;
   display: block
}
.popup-messages{
	display: block;
	position: fixed;
	bottom: 40px;
	left: 0;
	right:0;
	max-width:480px;
	margin:0 auto;
	z-index: 10000000;
	padding: 20px;
	background: #fff;
	box-shadow: 0 0 20px rgba(0,0,0,.4);
	border-radius: 10px;
	color: #fff;
	text-align: center
}
.popup-messages p{
	padding:10px;
	font-size:20px;
   margin:0
}
.collapsible{
   transition: all 100ms ease-in-out;
}
.collapsed .collapsible{
   height:0px;
   overflow: hidden;
}
.fake-input{
	display: flex;
	align-items: center;
	padding: 4px 12px !important;
	white-space: normal;
	height: auto;
	flex-flow: wrap;
	line-height: 1.4em;
	min-height: 40px;
	gap:4px;
   justify-content: flex-start;
}
.fake-input:has(input[data-multiple="false"]){
   white-space: nowrap;
   overflow: hidden;
   max-width:calc(100vw - 40px);
}
.fake-input > .clicktoremove ~ input[data-multiple="false"] {
   display:none
}
.fake-input input{
	margin:0;
	border: 0;
	background: none !important;
	padding:0 !important;
	margin:0 !important;
	height: 22px;
	overflow: visible;
	box-sizing:border-box;
	width: auto;
	min-width: 120px;
   border:none !important;
}
.fake-input input:first-child{
   text-indent:0
}
.fake-input > a,
.fake-input > span{
	text-decoration: none;
	display: inline-block;
	font-weight: 700;
	cursor:pointer;
   overflow:hidden;
	text-overflow:ellipsis
}
.fake-input .hover-placeholder{
	display: inline-block;
	font-weight: 700;
	background: #f2f2f2;
	padding: 3px 6px;
	border: 1px #dcdcdc solid;
	border-radius: 3px;
	opacity:.5
}
.fake-input .sort-target{
	text-decoration:none !important;
	box-shadow:0 0 0 3px rgba(0, 0, 0, 0.432);
	cursor:pointer !important
}
.fake-input > a:hover,
.fake-input > span:hover{
	text-decoration: line-through;
}
[data-get] > *,
[data-post] > * {
    pointer-events: none;
}
@media (pointer:coarse){
	input, select, textarea{
		font-size:16px !important;
	}
}
.navigation li{
   position:relative
}
.navigation a .material-symbols-outlined{
   font-size: 22px;
   vertical-align: top;
   padding-right:5px;
}
.navigation{
   display:none;
   position:absolute;
   right:0;
   top:var(--header-height);
   background:#fff;
   margin:0;
   padding:0;
   z-index:1000;
   max-height:calc(100vh - var(--header-height));
   overflow-y: auto;
   box-sizing: border-box;
}
.navigation::-webkit-scrollbar {
   display:none
}
.navopen .navigation{
   display:block;
   box-shadow:0 0 30px rgba(0,0,0,.1)
}
.navigation{
   left:0;
   padding:20px;
   border-bottom-left-radius:20px;
}
.navigation li{
   display:block;
}
.navigation li a{
   display:block;
   padding:6px;
   text-decoration:none;
   font-size:18px;
   padding-left:0
}
.navigation > li > ul{
   padding-left:0px;
   margin-bottom:20px;
}
.navigation > li > ul ul{
   padding-left:31px;
}
.navigation > li > ul ul a{
   padding:0px
}
.navigation li b{
   color:#4A4A4A;
   font-size:13px;
}
.navigation-inline{
   display: grid;
   grid-auto-flow: column;
   gap: 16px;
   align-items: center;
   margin:0;
   padding:0;
   height:100%
}
.navigation-inline > li{
   display:flex;
   height:100%;
   align-items:center;
}
.navigation-inline li a,
.navigation-inline li > span{
   display:block;
   text-decoration:none;
   font-size:16px;
   font-weight:bold;
   white-space: nowrap;
   color:var(--navigation-color-a);
}
.navigation-inline li ul a{
   color:var(--navigation-color-dropmenu-a)
}
.navigation-sub-inline-sticky{
   position:sticky;
   top:var(--header-height);
   background:#fff;
   z-index: 10000;
}
.navigation-sub-inline{
   gap:0px;
   justify-content:start;
   padding-bottom:0
}
.navigation-sub-inline li{
   text-align:center
}
.navigation-sub-inline li a{
   padding:6px 12px;
   border-radius:6px;
   display:grid;
   gap:4px;
   justify-content: center;
   align-items:center
}
.navigation-inline li a.active{
   color:var(--button-color)
}
.navigation-inline li a.active small{
   color:#fff
}
.navigation-inline li > span{
   cursor:default
}
.navigation-inline ul{
   display:none;
   position:absolute;
   margin:0;
   padding:0;
   top:var(--header-height);
   background:#fff;
   padding:30px;
   border-radius:6px;
   box-shadow: 0 5px 30px #00000014;
   gap:16px;
   column-gap:40px;
   max-height: 380px; 
   overflow: hidden;
   column-count: auto;
   column-width: 200px; 
   column-gap: 40px;
   max-height: 30vh;
   overflow: hidden;
   flex-flow: column wrap;
   min-width:120px
}
.navigation-inline small{
   display:block;
   font-size:14px;
   color:#4A4A4A
}
.navigation-inline li{
   display:grid;
   grid-auto-flow: row;
}
.navigation-trigger{
   display:flex;
   align-items: center;
}
.navigation-floater{
   display:flex;
   justify-content:space-between;
   width:100%;
}
.navigation-aside{
   margin:0; padding:0;
   display:grid;
}
.navigation-aside li{
   display:block;
   margin:0;
   padding:0;
}
.navigation-aside ul{
   margin:0;
   padding:0;
   display:none
}
.navigation-aside li a,
.navigation-aside li > span{
   padding:6px;
   border-radius:6px;
   color:#555;
   font-weight:400;
   text-decoration: none;
   font-size:16px;
   display:flex;
   align-items:center;
   gap:10px;
   justify-content: start;
   align-items: center;
}
.navigation-aside li a.active{
   color:var(--aside-color-a-hover);
}
.navigation-aside a:hover{
   background:var(--aside-color-li-hover);
}
.navigation-aside .nav-badge{
    background: #ebebeb;
    color: #000000;
    font-size: 10px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 19px;
    border-radius: 4px;
    margin-left:auto
}
.navigation-aside li.active ul{
   display:block;
}
.navigation-aside ul{
   padding-left:29px;
}
.navigation-aside li .material-symbols-outlined{
   font-size: 18px !important;
   top:1px
}
.grid-column{
   display:grid;
   gap:var(--grid-gap);
   grid-template-columns: 1fr 1fr;
}
.grid-row{
   display:grid;
   gap:var(--grid-gap);
   grid-auto-flow:row;
}
.grid-desktop{
   display:grid;
   gap:var(--grid-gap);
   grid-auto-flow:column;
}
@media only screen and (min-width: 768px) {
   .navigation{
      max-width:265px;
      margin-left:auto
   }
   .navigation-trigger{
      display:none
   }
   .navigation-inline li:hover ul{
      display:flex;
   }
   .mobile-browser-only{
      display:none !important
   }
}
@media only screen and (max-width: 768px) {
   body:not(.user) .navigation-floater{
      display:none
   }
   .navigation-open .navigation-floater{
      display: flex !important;
      position: fixed;
      left: 0;
      right: 0;
      top: var(--header-height);
      background: #fff;
      height: calc( 100vh - var(--header-height) );
      padding: 20px;
      overflow: auto;
      z-index: 100000000000000;
      box-sizing: border-box;
      flex-direction:column;
      justify-content: flex-start;
   }
   .navigation-aside-open aside{
      display: flex !important;
      position: fixed;
      left: 0;
      right: 0;
      top: var(--header-height);
      background: #fff;
      height: calc( 100vh - var(--header-height) );
      padding: 10px;
      overflow: auto;
      z-index: 100000000000000;
      box-sizing: border-box;
      flex-direction:column;
      justify-content: flex-start;
      --aside-color-a: #000 !important
   }
   body:not(.user) .navigation-inline{
      grid-auto-flow: row;
      height:auto
   }
   .navigation-sub-inline{
      grid-auto-flow: column;
   }
   .navigation-inline li{
      height:auto
   }
   .navigation-inline ul{
      display:grid;
      position:relative;
      padding:0;
      top:auto;
      background:none;
      box-shadow:none;
      grid-auto-flow: row !important;
   }
   .navigation-inline li > span{
      font-size:14px;
      margin-bottom:10px;
      color:#4A4A4A
   }
}
table{
   width: 100%;
   border-collapse: separate; 
   border: 0;
   border-spacing: 0;
   border-radius: 20px;
   background: #fff;
   text-align:left;
   font-size:16px;
}
table td,
table th{
   color: #3a3a3a;
   background-clip: padding-box;
   scroll-snap-align: start;
   padding:8px 10px;
   overflow: hidden;
   text-wrap:pretty
}
table thead th{
   font-weight:bold;
   white-space:nowrap;
   background:#fff;
}
table tbody td,
table thead th,
table tbody tr:last-child td{
   border-bottom:1px #eee solid;
}
table tfoot td{
   padding:16px 0;
}
tr.loading td{
   position:relative
}
tr.loading td:not([class]):after{
   background:#ddd;
   color:#ddd;
   content:"loading_text_here";
}
tr.loading td:not([class]):before{
   display: block;
   content: "";
   position: absolute;
   width: 100px;
   height: 100%;
   z-index: 10;
   animation: 1s ease-in-out infinite bgslide;
   background: linear-gradient(90deg,rgba(0,0,0,0),#ffffff34 50%,rgba(0,0,0,0))
}
@keyframes bgslide {
   0% {
       left: -100px
   }
   100% {
       left: 100px
   }
}
.table-overflow{
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
}
@media only screen and (max-width: 768px) {
   table tbody td{
		font-size:16px;
      padding-right:10px
	}
   .table-overflow {
      overflow: hidden;
      overflow-x: scroll;
      max-width: fit-content;
      overflow: auto;
      scroll-snap-type: both mandatory;
      min-width: 100%;
  }
  .table-overflow td{
   scroll-snap-align: start;
  }
   .table-overflow {
      scrollbar-width: none;
   }
}
.action-menu{
   position:sticky;
   right:-1px;
   background:transparent;
   padding:0 10px;
   white-space:nowrap;
   text-align:center;
   overflow:visible !important;
   scroll-snap-align:none;
   cursor:pointer;
   width:20px;
}
.action-menu > .material-symbols-outlined{
   opacity:0;
   transition:opacity 0.15s;
}
table tr:hover > .action-menu{
   background:#fff;
}
table tr:hover > .action-menu > .material-symbols-outlined{
   opacity:1;
}
@media(hover:none){
   .action-menu{
      background:#fff;
   }
   .action-menu > .material-symbols-outlined{
      opacity:1;
   }
}
.action-menu ul{
   display:flex;
   gap:2px;
   list-style:none;
   margin:0;
   padding:4px;
   align-items:center;
   position:absolute;
   right:6px;
   top:50%;
   transform:translateY(-50%);
   background:#fff;
   border:1px solid #eee;
   border-radius:8px;
   box-shadow:0 2px 8px rgba(0,0,0,0.08);
   opacity:0;
   visibility:hidden;
   transition:opacity 0.12s, visibility 0.12s;
   z-index:10000;
}
.action-menu ul:empty{
   display:none !important;
   pointer-events: none;
}
.action-menu:not(:has(li)){
   border-bottom:1px #eee solid;
   background:inherit !important
}
.action-menu:not(:has(li)):after{
   display:none !important
}
.action-menu:not(:has(li)) .material-symbols-outlined{
   display:none !important
}
.action-menu:hover ul{
   opacity:1;
   visibility:visible;
}
.action-menu:hover > .material-symbols-outlined{
   opacity:0;
}
.action-menu li a,
.action-menu li > span{
   display:flex !important;
   align-items:center;
   justify-content:center;
   width:30px;
   height:30px;
   border-radius:6px;
   text-decoration:none;
   color:#555;
   font-size:0;
   transition:background 0.12s, color 0.12s;
   position:relative;
}
.action-menu li a .material-symbols-outlined,
.action-menu li > span .material-symbols-outlined{
   font-size:18px !important;
}
@media(hover:hover){
   .action-menu li a:hover{
      background:#f0f0f0;
      color:#111;
   }
   .action-menu li a[style*="color:#d9534f"]:hover,
   .action-menu li a[style*="color: #d9534f"]:hover{
      background:rgba(217,83,79,0.08);
   }
   .action-menu li *[title]:hover:after{
      content:attr(title);
      position:absolute;
      bottom:calc(100% + 6px);
      left:50%;
      transform:translateX(-50%);
      background:#333;
      color:#fff;
      font-size:11px;
      font-weight:500;
      padding:4px 8px;
      border-radius:4px;
      white-space:nowrap;
      pointer-events:none;
      z-index:10000;
   }
   .action-menu li:last-child *[title]:hover:after{
      left:auto;
      transform:none;
      right:0;
   }
}
.action-menu:after{
   position:absolute;
   left:0px;
   height:100%;
   background:#eee;
   top:0;
   content:" ";
   width:2px;
   display:none;
}
table tr:hover > .action-menu:after{
   display:block;
}
table tr:hover{
   z-index:1000
}
table tr td:hover{
   z-index:10000
}
table td span{
   display: -webkit-box;
   -webkit-box-orient: vertical;
   -webkit-line-clamp: 2;
   overflow: hidden;
}
table td > a{
   text-decoration:underline
}
.action-menu span{
   display:inline !important;
   -webkit-line-clamp:unset !important;
   -webkit-box-orient:unset !important;
   overflow:visible !important;
}
.pagination{
   display:flex;
   justify-content:space-between;
   align-items:center;
   padding:16px 0;
   font-size:13px;
}
.pagination-info{
   opacity:0.5;
}
.pagination-links{
   display:flex;
   gap:12px;
}
.pagination-links a{
   font-weight:700;
}
activity-*/monthly-*/spark-* dashboard kit, detail-*,
   .form-section/.form-row/.form-card.
   Every block here exists (same selector) in >=4 sites; most are
   byte-identical in 5-8 sites. Site css loads AFTER framework css,
   so existing per-site copies keep winning until they are removed
   site-by-site.
   ============================================================ */
:root{
	--app-theme-color:#1a5bc1;
	--app-theme-dark:color-mix(in srgb, var(--app-theme-color) 78%, #000);
	--app-theme-soft:color-mix(in srgb, var(--app-theme-color) 10%, #fff);
}
.impersonate-banner{
	background:#ff9800;
	color:#fff;
	margin:8px 12px 12px;
	padding:10px 12px;
	border-radius:8px;
	display:flex;
	align-items:center;
	gap:8px;
	font-size:12px;
	line-height:1.3;
}
.impersonate-banner strong{ display:block; font-size:11px; word-break:break-all }
.impersonate-banner a{
	margin-left:auto;
	flex-shrink:0;
	color:#fff;
	background:rgba(0,0,0,0.2);
	padding:4px 10px;
	border-radius:6px;
	text-decoration:none;
	font-size:11px;
	font-weight:600;
}
.dash-cards{
	display:flex;
	gap:var(--grid-gap);
	margin-bottom:24px;
	overflow-x:auto;
	scrollbar-width:none;
	scroll-snap-type:x mandatory;
	-webkit-overflow-scrolling:touch;
}
.dash-cards > *{
	flex:1 0 0;
	min-width:160px;
	scroll-snap-align:start;
}
.dash-card{
	background:#fff;
	border:1px solid #eee;
	border-radius:12px;
	padding:20px;
	display:flex;
	align-items:center;
	gap:14px;
	text-decoration:none;
	color:inherit;
}
.dash-card-body{
	display:flex;
	flex-direction:column;
}
.dash-card-value{
	font-size:28px;
	font-weight:900;
	line-height:1.1;
	letter-spacing:-0.5px;
}
.dash-card-label{
	font-size:13px;
	font-weight:500;
	color:#888;
	margin-top:2px;
}
.dash-card-sub{
	font-size:11px;
	margin-top:4px;
	line-height:1.3;
}
.dash-cards-small{
	display:flex;
	gap:16px;
	margin-bottom:24px;
	overflow-x:auto;
	scrollbar-width:none;
	scroll-snap-type:x mandatory;
	-webkit-overflow-scrolling:touch;
}
.dash-cards-small > *{
	flex:1 0 0;
	min-width:120px;
	scroll-snap-align:start;
}
.dash-card-small{
	background:#fff;
	border-radius:10px;
	padding:16px;
	border:1px solid #f0f0f0;
}
.dash-card-small-value{
	font-size:22px;
	font-weight:800;
	letter-spacing:-0.3px;
}
.dash-card-small-label{
	font-size:12px;
	color:#888;
	margin-top:2px;
}
.dash-section{
	margin-bottom:18px;
}
.dash-section-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	margin-bottom:12px;
}
.dash-section-head:has(+ .detail-card){
	margin-bottom:0;
	padding:12px 16px 10px;
	background:#fff;
	border:1px solid #f0f0f0;
	border-bottom:none;
	border-top-left-radius:12px;
	border-top-right-radius:12px;
}
.dash-section-head:has(+ .detail-card) h2{
	font-size:14px;
	font-weight:700;
}
.dash-section-head:has(+ .detail-card) + .detail-card{
	border-top:none;
	border-top-left-radius:0;
	border-top-right-radius:0;
}
.dash-section-head h2{
	font-size:16px;
	font-weight:700;
	margin:0;
}
.dash-section-head a{
	font-size:13px;
	color:var(--app-theme-color);
	text-decoration:none;
	font-weight:600;
}
.dash-columns-half{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:var(--grid-gap);
}
.dash-insights-card{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	gap:var(--grid-gap);
	max-height:200px;
	overflow:hidden;
	transition:max-height .3s ease;
}
.dash-insights-card.expanded{
	max-height:none;
}
.dash-insights-toggle{
	text-align:center;
	margin-top:8px;
}
.dash-insights-toggle button{
	background:none;
	border:none;
	color:var(--app-theme-color);
	font-size:13px;
	font-weight:600;
	cursor:pointer;
	padding:4px 12px;
	display:inline-flex;
	align-items:center;
	gap:2px;
}
.dash-insight-row{
	display:flex;
	align-items:flex-start;
	gap:14px;
	padding:16px 18px;
	border-radius:12px;
	text-decoration:none;
	color:inherit;
	transition:box-shadow .15s, transform .15s;
	border:1px solid #f0f0f0;
	background:#fff;
}
.dash-insight-icon{
	width:40px;
	height:40px;
	border-radius:10px;
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
}
.dash-insight-icon .material-symbols-outlined{
	font-size:22px;
}
.dash-insight-body{
	flex:1;
	min-width:0;
}
.dash-insight-title{
	font-size:14px;
	font-weight:700;
	line-height:1.3;
	color:#1a1a1a;
	margin-bottom:3px;
}
.dash-insight-detail{
	font-size:12px;
	line-height:1.5;
	color:#888;
}
.dash-insight-action{
	flex-shrink:0;
	align-self:center;
	font-size:12px;
	font-weight:700;
	padding:6px 14px;
	border-radius:8px;
	white-space:nowrap;
	transition:opacity .15s;
}
.dash-insight-action:hover{ opacity:.85 }
.dash-insight-row.severity-critical{ border-color:rgba(217,83,79,.2); background:rgba(217,83,79,.03) }
.dash-insight-row.severity-critical .dash-insight-icon{ background:rgba(217,83,79,.1); color:#d9534f }
.dash-insight-row.severity-critical .dash-insight-action{ background:rgba(217,83,79,.1); color:#d9534f }
.dash-insight-row.severity-warning{ border-color:rgba(230,126,34,.2); background:rgba(230,126,34,.03) }
.dash-insight-row.severity-warning .dash-insight-icon{ background:rgba(230,126,34,.1); color:#e67e22 }
.dash-insight-row.severity-warning .dash-insight-action{ background:rgba(230,126,34,.1); color:#e67e22 }
.dash-insight-row.severity-info{ border-color:color-mix(in srgb, var(--app-theme-color) 15%, transparent); background:color-mix(in srgb, var(--app-theme-color) 2%, transparent) }
.dash-insight-row.severity-info .dash-insight-icon{ background:color-mix(in srgb, var(--app-theme-color) 10%, transparent); color:var(--app-theme-color) }
.dash-insight-row.severity-info .dash-insight-action{ background:color-mix(in srgb, var(--app-theme-color) 10%, transparent); color:var(--app-theme-color) }
.dash-insight-row.severity-positive{ border-color:rgba(34,139,34,.2); background:rgba(34,139,34,.03) }
.dash-insight-row.severity-positive .dash-insight-icon{ background:rgba(34,139,34,.1); color:#228b22 }
.dash-insight-row.severity-positive .dash-insight-action{ background:rgba(34,139,34,.1); color:#228b22 }
.chip-filters{
	margin-bottom:16px;
}
.chip-bar{
	display:flex;
	align-items:center;
	gap:10px;
	flex-wrap:wrap;
	width:stretch;
	justify-content: space-between;
}
.chip-bar-left{
	display:flex;
	align-items:center;
	gap:6px;
	flex:1;
	min-width:0;
	flex-wrap:wrap;
}
.chip-bar-right{
	display:flex;
	align-items:center;
	gap:10px;
	flex-shrink:0;
	margin-left:auto;
}
.chip-filter{
	position:relative;
}
.chip-btn{
	display:inline-flex;
	align-items:center;
	gap:2px;
	height:34px;
	padding:0 10px 0 12px;
	border:1px solid #ddd;
	border-radius:18px;
	background:#fff;
	font-size:13px;
	font-weight:600;
	color:#555;
	cursor:pointer;
	white-space:nowrap;
	transition:all 0.15s;
}
.chip-btn:hover{
	border-color:#bbb;
	background:#fafafa;
}
.chip-btn.active{
	background:var(--app-theme-color);
	color:#fff;
	border-color:var(--app-theme-color);
}
.chip-btn.active:hover{
	opacity:0.9;
}
.chip-arrow{
	font-size:16px !important;
	transition:transform 0.15s;
}
.chip-filter.open .chip-arrow{
	transform:rotate(180deg);
}
.chip-dropdown{
	display:none;
	position:absolute;
	top:calc(100% + 6px);
	left:0;
	min-width:180px;
	max-height:260px;
	overflow-y:auto;
	background:#fff;
	border:1px solid #e0e0e0;
	border-radius:10px;
	box-shadow:0 8px 24px rgba(0,0,0,0.1);
	z-index:100;
}
.chip-filter.open .chip-dropdown{
	display:block;
}
.chip-dropdown a{
	display:block;
	padding:8px 14px;
	font-size:13px;
	color:#333;
	text-decoration:none;
	transition:background 0.1s;
}
.chip-dropdown a:hover{
	background:#f5f5f5;
}
.chip-dropdown a.selected{
	display:flex;
	align-items:center;
	justify-content:space-between;
	color:var(--app-theme-color);
	font-weight:700;
	background:color-mix(in srgb, var(--app-theme-color) 6%, transparent);
}
.chip-dropdown a.selected::after{
	content:"✓";
	font-size:14px;
	margin-left:8px;
}
.chip-search{
	display:flex;
	align-items:center;
	gap:0;
	background:#fff;
	border:1px solid #ddd;
	border-radius:18px;
	padding:0;
	height:34px;
	width:34px;
	justify-content:center;
	cursor:pointer;
	transition:width 0.2s,padding 0.2s,gap 0.2s;
	overflow:hidden;
}
.chip-search.open{
	width:auto;
	min-width:180px;
	max-width:260px;
	padding:0 12px;
	gap:6px;
	cursor:default;
}
.chip-search .material-symbols-outlined{
	font-size:18px;
	color:#aaa;
	flex-shrink:0;
}
.chip-search form{
	width:0;
	overflow:hidden;
}
.chip-search.open form{
	width:auto;
	flex:1;
}
.chip-search input{
	border:none;
	outline:none;
	font-size:13px;
	background:transparent;
	width:0;
	height:100%;
	padding:0;
	opacity:0;
	transition:width 0.2s, opacity 0.15s;
}
.chip-search.open input{
	width:100%;
	opacity:1;
}
.chip-tag{
	display:inline-flex;
	align-items:center;
	gap:4px;
	padding:4px 8px 4px 12px;
	background:color-mix(in srgb, var(--app-theme-color) 8%, transparent);
	color:var(--app-theme-color);
	border-radius:14px;
	font-size:12px;
	font-weight:700;
	text-decoration:none;
	transition:background 0.15s;
}
.chip-tag:hover{
	background:color-mix(in srgb, var(--app-theme-color) 15%, transparent);
}
.chip-tag .material-symbols-outlined{
	font-size:14px;
}
main.main-min{
	background:linear-gradient(to bottom, #f7f7f8 0%, #fff 100%);
}
main.main-min .main-head{
	background:#fff;
	border-bottom:1px solid #eee;
	padding:0 20px;
	margin-bottom:0;
}
main.main-min .main-head h1{
	font-size:18px;
	font-weight:600;
	color:#1a1a1a;
	white-space:nowrap
}
main.main-min .main-head .exit{
	width:36px;
	height:36px;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	border-radius:8px;
	color:#666;
	transition:background 0.15s, color 0.15s;
	text-decoration:none;
}
main.main-min .main-head .exit:hover{
	background:#f0f0f0;
	color:#1a1a1a;
}
form.processing button[type="submit"]{
	pointer-events:none;
}
form.processing button[type="submit"]::after{
	content:"";
	width:18px;
	height:18px;
	border:2.5px solid rgba(255,255,255,0.3);
	border-top-color:#fff;
	border-radius:50%;
	animation:btn-spin 0.6s linear infinite;
}
form.saved button[type="submit"]{
	color:transparent !important;
	background:#27ae60 !important;
	pointer-events:none;
	min-width:110px;
}
form.saved button[type="submit"]::after{
	content:"\2713  Saved!" !important;
	position:absolute;
	top:0;
	left:0;
	width:100%;
	height:100%;
	display:flex;
	align-items:center;
	justify-content:center;
	color:#fff;
	font-size:13px;
	font-weight:700;
	letter-spacing:0.5px;
	animation:btn-pop 0.3s ease;
}
.form-section{
	margin-bottom:28px;
}
.form-section:last-of-type{
	margin-bottom:0;
}
.form-section-head{
	display:flex;
	align-items:center;
	gap:8px;
	margin-bottom:12px;
}
.form-section-head .material-symbols-outlined{
	font-size:20px !important;
	color:var(--app-theme-color);
	opacity:0.8;
}
.form-section-head h3{
	margin:0;
	padding:0;
	font-size:15px;
	font-weight:700;
	color:#1a1a1a;
}
.form-card{
	position:relative;
	padding:20px;
	background:#fff;
	border:1px solid #e8e8eb;
	border-radius:12px;
}
.form-card > .remove-btn{
	position:absolute;
	top:8px;
	right:8px;
	height:auto !important;
	z-index:2;
}
.form-row{
	display:grid;
	grid-template-columns:repeat(auto-fit, minmax(200px, 1fr));
	gap:12px;
	margin-bottom:12px;
}
.form-row-3{
	grid-template-columns:repeat(3, 1fr);
}
.form-row-4{
	grid-template-columns:repeat(4, 1fr);
}
.form-row label{
	font-size:13px;
	font-weight:600;
	color:#555;
	display:block;
	margin-bottom:4px;
}
.form-row input,
.form-row select,
.form-row textarea{
	width:100%;
	height:38px;
	padding:0 12px;
	border:1px solid #ddd;
	border-radius:8px;
	font-size:14px;
	background:#fff;
	transition:border-color 0.15s;
}
.form-row textarea{
	height:80px;
	padding:10px 12px;
	resize:vertical;
}
.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus{
	border-color:var(--app-theme-color);
	outline:none;
}
.prop-row{
	cursor:pointer;
	transition:background 0.1s;
}
.prop-row.expanded{
	background:color-mix(in srgb, var(--app-theme-color) 4%, transparent);
}
.prop-detail{
	display:none;
}
.prop-detail.open{
	display:table-row;
}
.prop-detail td{
	padding:0 !important;
	border-top:none !important;
}
.prop-detail-inner{
	padding:16px 20px 20px;
	background:color-mix(in srgb, var(--app-theme-color) 3%, #fff);
	border-top:1px dashed color-mix(in srgb, var(--app-theme-color) 15%, transparent);
}
.prop-detail-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
	gap:14px 24px;
}
.prop-detail-grid > div{
	display:flex;
	flex-direction:column;
	gap:2px;
}
.prop-detail-grid > div > span:first-child,
.prop-detail-notes > span:first-child{
	font-size:11px;
	font-weight:700;
	text-transform:uppercase;
	color:#999;
	letter-spacing:0.3px;
}
.prop-detail-grid > div > span:last-child{
	font-size:14px;
	font-weight:600;
	color:#333;
}
.prop-detail-notes{
	margin-top:14px;
	padding-top:14px;
	border-top:1px solid rgba(0,0,0,0.06);
}
.prop-detail-notes p{
	margin:4px 0 0;
	font-size:14px;
	line-height:1.5;
	color:#555;
}
.detail-header{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	margin-bottom:20px;
	gap:16px;
}
.detail-header-left{
	flex:1;
}
.detail-header h1{
	font-size:22px;
	font-weight:800;
	margin:0 0 4px;
	color:#1a1a1a;
}
.detail-header-meta{
	font-size:14px;
	color:#888;
	display:flex;
	gap:12px;
	align-items:center;
	flex-wrap:wrap;
}
.detail-header-actions{
	display:flex;
	gap:8px;
}
.detail-header-actions a,
.detail-header-actions button{
	height:36px;
	padding:0 16px;
	border-radius:8px;
	font-size:13px;
	font-weight:600;
	display:inline-flex;
	align-items:center;
	gap:4px;
	text-decoration:none;
	border:1px solid #ddd;
	background:#fff;
	color:#333;
	cursor:pointer;
	transition:all 0.15s;
	white-space: nowrap;
}
.detail-header-actions .btn-primary{
	background:var(--app-theme-color);
	color:#fff;
	border-color:var(--app-theme-color);
	white-space: nowrap;
}
.detail-header-actions .btn-primary:hover{
	opacity:0.9;
}
.detail-header-actions .btn-danger{
	color:#d9534f;
	border-color:#d9534f;
}
.detail-tabs{
	display:flex;
	gap:0;
	border-bottom:1px solid #eee;
	margin-bottom:20px;
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
	scrollbar-width:none;
	position:sticky;
	top:var(--header-height);
	background:#fff;
	z-index:9999;
}
.detail-tabs::-webkit-scrollbar{ display:none; }
.detail-tabs a{
	padding:10px 18px;
	font-size:14px;
	font-weight:600;
	color:#888;
	text-decoration:none;
	border-bottom:2px solid transparent;
	transition:all 0.15s;
	white-space:nowrap;
}
.detail-tabs a:hover{
	color:#333;
}
.detail-tabs a.active{
	color:var(--app-theme-color);
	border-bottom-color:var(--app-theme-color);
}
.detail-tabs a.tab-error{
	color:#d9534f;
	border-bottom-color:#d9534f;
	animation:tab-error-pulse 0.3s ease 2;
}
.detail-grid{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:24px;
	margin-bottom:24px;
}
.detail-card{
	background:#fff;
	border:1px solid #f0f0f0;
	border-radius:12px;
	padding:20px;
	overflow-x: auto;
	scrollbar-width: none;
}
.detail-card h3{
	font-size:14px;
	font-weight:700;
	margin:0 0 12px;
	color:#1a1a1a;
	display:flex;
	align-items:center;
	gap:6px;
}
.detail-card h3 .material-symbols-outlined{
	font-size:18px;
	color:var(--app-theme-color);
}
.detail-field{
	display:flex;
	justify-content:space-between;
	padding:6px 0;
	border-bottom:1px solid #f5f5f5;
	font-size:13px;
}
.detail-field:last-child{ border-bottom:none; }
.detail-field-label{ color:#888; }
.detail-field-value{ font-weight:600; color:#1a1a1a; }
.detail-card-full{
	grid-column:1/-1;
}
.org-select{
	max-width:480px;
	margin:60px auto;
	text-align:center;
}
.org-select h1{
	font-size:22px;
	font-weight:800;
	margin-bottom:8px;
}
.org-select p{
	color:#888;
	margin-bottom:24px;
}
.org-list{
	display:grid;
	gap:10px;
	text-align:left;
}
.org-list a{
	display:flex;
	align-items:center;
	gap:12px;
	padding:16px 20px;
	background:#fff;
	border:1px solid #eee;
	border-radius:10px;
	text-decoration:none;
	color:#333;
	transition:all 0.15s;
}
.org-list a:hover{
	border-color:var(--app-theme-color);
	box-shadow:0 2px 8px color-mix(in srgb, var(--app-theme-color) 8%, transparent);
}
.org-setup{
	max-width:520px;
	margin:60px auto;
	padding:40px 0;
}
.org-setup h1{
	font-size:22px;
	font-weight:800;
	margin-bottom:24px;
	text-align:center;
}
@media(max-width:900px){
	.dash-insights-card{ grid-template-columns:1fr; }
	.dash-columns-half{ grid-template-columns:1fr; }
	.detail-grid{ grid-template-columns:1fr !important; }
	.form-row-3, .form-row-4{ grid-template-columns:repeat(2,1fr); }
}
@media(max-width:768px){
	.dash-card{ padding:14px; gap:10px; }
	.dash-card-value{ font-size:22px; }
	.dash-card-label{ font-size:12px; }
}
@media(max-width:700px){
	.detail-header{ flex-direction:column; }
	.detail-header-actions{ width:100%; }
	.detail-header-actions a,
		.detail-header-actions button{ flex:1; justify-content:center; }
}
@media(max-width:500px){
	.form-row, .form-row-3, .form-row-4{ grid-template-columns:1fr; }
	.dash-card{ padding:12px; gap:8px; }
	.dash-card-value{ font-size:20px; }
	.dash-card-small-value{ font-size:18px; }
}
#mbody a.button,
#mbody button.button,
#mbody .button,
#mbody button[type="submit"],
#mbody button[type="button"],
.main-min a.button,
.main-min button.button,
.main-min .button,
.main-min button[type="submit"],
.main-min button[type="button"]{
	width:auto;
	display:inline-flex;
	border-radius:20px;
}
@media print{
	#mbody{ padding:0 !important; }
}
.page-dashboard #mbody{ display:flex; flex-direction:column; gap:20px; }
.dash-hero{ display:grid; grid-template-columns:2fr 1fr; gap:20px; }
.dash-hero-main{
	background:linear-gradient(135deg, var(--app-theme-dark) 0%, var(--app-theme-color) 100%);
	color:#fff;
	border-radius:18px;
	padding:28px 32px 24px;
	box-shadow:0 12px 32px color-mix(in srgb, var(--app-theme-color) 22%, transparent);
	position:relative;
	overflow:hidden;
}
.dash-hero-main::before{
	content:""; position:absolute; inset:0;
	background:radial-gradient(ellipse at top right, rgba(255,255,255,0.18), transparent 60%);
	pointer-events:none;
}
.dash-hero-main > *{ position:relative; z-index:1; }
.dash-hero-main small{ font-size:11px; text-transform:uppercase; letter-spacing:0.6px; color:rgba(255,255,255,0.78); font-weight:700; }
.dash-hero-main h1{ font-size:48px; font-weight:900; letter-spacing:-1.2px; margin:6px 0 8px; line-height:1; color:#fff; }
.dash-hero-meta{ display:flex; align-items:center; gap:14px; font-size:13px; flex-wrap:wrap; }
.dash-hero-meta > span{ color:rgba(255,255,255,0.85); }
.dash-yoy{ display:inline-flex; align-items:center; gap:4px; background:rgba(255,255,255,0.18); padding:4px 12px; border-radius:14px; font-weight:700; }
.dash-yoy .material-symbols-outlined{ font-size:16px; }
.dash-yoy.up{ background:rgba(70, 200, 130, 0.32); }
.dash-yoy.down{ background:rgba(255, 130, 130, 0.32); }
.dash-sparkline{ margin-top:22px; display:flex; align-items:flex-end; gap:6px; height:64px; }
.spark-bar{ flex:1; background:rgba(255,255,255,0.42); border-radius:4px 4px 0 0; min-height:2px; transition:background 0.2s; }
.spark-bar.current{ background:#fff; }
.spark-bar:hover{ background:rgba(255,255,255,0.85); }
.dash-sparkline-labels{ display:flex; gap:6px; margin-top:6px; }
.dash-sparkline-labels span{ flex:1; text-align:center; font-size:10px; color:rgba(255,255,255,0.65); font-weight:600; }
.dash-hero-side{ display:flex; }
.dash-actions-card{
	background:#fff;
	border:1px solid #eee;
	border-radius:14px;
	padding:18px 20px;
	width:100%;
	display:flex; flex-direction:column; gap:10px;
}
.dash-actions-card h3{
	margin:0 0 4px;
	font-size:13px; font-weight:800;
	text-transform:uppercase; letter-spacing:0.5px;
	color:#555;
	display:flex; align-items:center; gap:6px;
}
.dash-actions-card h3 .material-symbols-outlined{ font-size:18px; color:var(--app-theme-color); }
.dash-actions-count{
	margin-left:auto;
	background:var(--app-theme-color);
	color:#fff;
	font-size:11px; font-weight:800;
	padding:2px 9px; border-radius:10px;
}
.dash-action{
	display:flex; align-items:center; gap:10px;
	padding:8px 12px; border-radius:8px;
	background:#fafafa; color:#333;
	text-decoration:none; font-size:13px;
	transition:background 0.15s, transform 0.1s;
}
.dash-action:hover{ background:var(--app-theme-soft); transform:translateX(2px); }
.dash-action .material-symbols-outlined{ font-size:18px; flex-shrink:0; }
.dash-action-label{ flex:1; font-weight:600; }
.dash-action-count{
	background:#fff; border:1px solid #e0e0e0;
	font-size:12px; font-weight:700;
	padding:2px 9px; border-radius:10px;
	min-width:24px; text-align:center;
}
.dash-action-danger .material-symbols-outlined{ color:#c62828; }
.dash-action-danger .dash-action-count{ background:#fdecea; color:#c62828; border-color:#f5c2c0; }
.dash-action-warning .material-symbols-outlined{ color:#e65100; }
.dash-action-warning .dash-action-count{ background:#fff3e0; color:#e65100; border-color:#ffe0b2; }
.dash-action-info .material-symbols-outlined{ color:var(--app-theme-color); }
.dash-actions-empty{ align-items:center; justify-content:center; text-align:center; padding:24px; }
.dash-actions-empty .material-symbols-outlined{ font-size:36px; color:#1e7e34; }
.dash-actions-empty h3{ font-size:15px; text-transform:none; letter-spacing:0; color:#333; display:block; margin-top:6px; }
.dash-actions-empty p{ font-size:12px; color:#888; margin:0; }
.dash-kpi-strip{ display:grid; grid-template-columns:repeat(6, 1fr); gap:12px; }
.dash-kpi{
	background:#fff; border:1px solid #eee; border-radius:12px;
	padding:14px 16px;
	display:flex; flex-direction:column; gap:2px;
	border-left:3px solid #ddd;
}
.dash-kpi small{ font-size:11px; text-transform:uppercase; letter-spacing:0.5px; color:#888; font-weight:700; }
.dash-kpi strong{ font-size:22px; font-weight:800; letter-spacing:-0.4px; }
.dash-kpi span{ font-size:11px; color:#999; }
.dash-kpi-good{ border-left-color:#1e7e34; }
.dash-kpi-good strong{ color:#1e7e34; }
.dash-kpi-bad{ border-left-color:#c62828; }
.dash-kpi-bad strong{ color:#c62828; }
.dash-kpi-warn{ border-left-color:#e65100; }
.dash-kpi-warn strong{ color:#e65100; }
.dash-row-2{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.dash-panel{
	background:#fff; border:1px solid #eee; border-radius:14px;
	padding:18px 22px;
}
.dash-panel-head{
	display:flex; justify-content:space-between; align-items:center;
	margin-bottom:14px;
}
.dash-panel-head h3{
	margin:0; font-size:13px; font-weight:800;
	text-transform:uppercase; letter-spacing:0.5px;
	color:#555;
	display:flex; align-items:center; gap:6px;
}
.dash-panel-head h3 .material-symbols-outlined{ font-size:18px; color:var(--app-theme-color); }
.dash-panel-link{ font-size:12px; color:#888; text-decoration:none; font-weight:600; }
.dash-panel-link:hover{ color:var(--app-theme-color); }
.monthly-chart{ display:flex; align-items:flex-end; gap:8px; height:160px; padding:0 4px; }
.month-col{ flex:1; display:flex; flex-direction:column; align-items:center; height:100%; gap:4px; }
.month-bars{ flex:1; display:flex; align-items:flex-end; gap:3px; width:100%; min-height:0; }
.month-bar{ flex:1; border-radius:3px 3px 0 0; min-height:2px; transition:opacity 0.15s; }
.month-bar.income{ background:linear-gradient(to top, #1e7e34, #4caf50); }
.month-bar.expense{ background:linear-gradient(to top, #c62828, #ef6e6a); }
.month-col:hover .month-bar{ opacity:0.85; }
.month-label{ font-size:11px; color:#888; font-weight:600; }
.monthly-legend{ display:flex; gap:16px; margin-top:14px; font-size:12px; color:#666; justify-content:center; }
.legend-dot{ display:inline-block; width:10px; height:10px; border-radius:2px; margin-right:6px; vertical-align:middle; }
.legend-dot.income{ background:#4caf50; }
.legend-dot.expense{ background:#c62828; }
.activity-feed{ display:flex; flex-direction:column; }
.activity-row{
	display:grid; grid-template-columns:36px 1fr auto auto;
	align-items:center; gap:12px;
	padding:8px 0;
	border-bottom:1px solid #f5f5f5;
	color:#333; text-decoration:none;
	transition:background 0.15s;
}
.activity-row:hover{ background:#fafafa; }
.activity-row:last-child{ border-bottom:none; }
.activity-icon{
	width:32px; height:32px; border-radius:8px;
	display:flex; align-items:center; justify-content:center;
	flex-shrink:0;
}
.activity-icon .material-symbols-outlined{ font-size:18px; }
.activity-icon.good{ background:#e6f4ea; color:#1e7e34; }
.activity-icon.bad{ background:#fdecea; color:#c62828; }
.activity-icon.neutral{ background:#f0f0f0; color:#666; }
.activity-meta strong{ display:block; font-size:13px; font-weight:600; }
.activity-meta small{ display:block; font-size:11px; color:#999; margin-top:2px; }
.activity-amount{ font-size:14px; font-weight:700; white-space:nowrap; }
.activity-time{ font-size:11px; color:#999; white-space:nowrap; }
@keyframes btn-spin{
	to{ transform:rotate(360deg); }
}
@keyframes btn-pop{
	0%{ transform:scale(0.8); opacity:0; }
	50%{ transform:scale(1.05); }
	100%{ transform:scale(1); opacity:1; }
}
@keyframes tab-error-pulse{
	0%,100%{ background:transparent }
	50%{ background:rgba(217,83,79,0.08) }
}
button .material-symbols-outlined,
a.btn-primary .material-symbols-outlined,
a.button-secondary .material-symbols-outlined,
a.button .material-symbols-outlined,
.btn-primary .material-symbols-outlined,
.button-secondary .material-symbols-outlined,
.action-menu .material-symbols-outlined{
	font-size:16px !important;
}
.btn-primary{
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:8px 18px;
	border-radius:8px;
	font-size:14px;
	font-weight:600;
	background:var(--app-theme-color);
	color:#fff;
	border:1px solid var(--app-theme-color);
	text-decoration:none;
	cursor:pointer;
	white-space:nowrap;
	transition:opacity 0.15s;
}
.btn-primary:hover{ opacity:0.9; color:#fff; }
.btn-danger{
	display:inline-flex;
	align-items:center;
	gap:6px;
	padding:8px 18px;
	border-radius:8px;
	font-size:13px;
	font-weight:600;
	background:#e53e3e;
	color:#fff;
	border:1px solid #e53e3e;
	text-decoration:none;
	cursor:pointer;
	white-space:nowrap;
	transition:opacity 0.15s;
}
.btn-danger:hover{ opacity:0.9; color:#fff; }
select.select-sm{
}
table td select.select-sm{
	height:auto;
	font-size:13px;
	padding:4px 28px 4px 8px;
	border:1px solid #ddd;
	border-radius:6px;
	background-color:#fff;
	width:auto;
}
.navigation-aside .nav-section-header{
	display:block;
	padding:10px 8px 6px;
	margin-top:10px;
	border-top:1px solid #efefef;
	font-size:10px;
	line-height:1.4;
	font-weight:800;
	letter-spacing:0.45px;
	text-transform:uppercase;
	color:#999;
}
.navigation-aside li:first-child .nav-section-header{
	margin-top:0;
	border-top:none;
	padding-top:0;
}
.status-badge{
	display:inline-block;
	padding:3px 10px;
	border-radius:20px;
	font-size:12px;
	font-weight:700;
	white-space:nowrap;
	background:#eee;
}
.status-active,.status-occupied,.status-paid,
.status-signed,.status-closed,.status-approved{ background:#e8f5e9; color:#228b22; }
.status-pending,.status-sent,.status-viewed,
.status-in_progress,.status-scheduled,
.status-open,.status-under_review{ background:color-mix(in srgb, var(--app-theme-color) 9%, #fff); color:var(--app-theme-color); }
.status-draft,.status-vacant,.status-expired,
.status-voided,.status-void,.status-withdrawn{ background:#f0f0f0; color:#6c757d; }
.status-overdue,.status-emergency,
.status-terminated,.status-denied{ background:#fde8e8; color:#d9534f; }
.status-partial,.status-pending_signature,
.status-waiting_vendor,.status-waiting_tenant,
.status-maintenance,.status-submitted{ background:#fff3e0; color:#e67e22; }
.status-month_to_month,.status-waived{ background:color-mix(in srgb, var(--app-theme-color) 10%, transparent); color:var(--app-theme-color); }
.status-converted{ background:#ede7f6; color:#7b68ee; }
.priority-label{
	display:inline-block;
	padding:3px 10px;
	border-radius:20px;
	font-size:12px;
	font-weight:600;
	white-space:nowrap;
}
.priority-label.priority-emergency{ background:#fde8e8; }
.priority-label.priority-high{ background:#fff3e0; }
.priority-label.priority-medium{ background:color-mix(in srgb, var(--app-theme-color) 9%, #fff); }
.priority-label.priority-low{ background:#f0f0f0; }
.priority-emergency{ color:#d9534f; font-weight:700; }
.priority-high{ color:#e67e22; font-weight:600; }
.priority-medium{ color:var(--app-theme-color); }
.priority-low{ color:#6c757d; }
.dynamic-row{
	display:grid;
	gap:10px;
	align-items:end;
	padding:10px 0;
	border-bottom:1px solid #f0f0f0;
}
.add-row-btn{
	display:inline-flex;
	align-items:center;
	gap:4px;
	padding:6px 12px;
	font-size:13px;
	font-weight:600;
	color:var(--app-theme-color);
	border:1px dashed var(--app-theme-color);
	border-radius:8px;
	background:none;
	cursor:pointer;
	transition:background 0.15s;
	margin-top:8px;
}
.add-row-btn:hover{
	background:color-mix(in srgb, var(--app-theme-color) 4%, transparent);
}
.media-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
	gap:12px;
}
.media-item{
	background:#fff;
	border:1px solid #f0f0f0;
	border-radius:8px;
	overflow:hidden;
	transition:box-shadow 0.15s;
}
.media-item:hover{
	box-shadow:0 2px 8px rgba(0,0,0,0.08);
}
.media-item > img{
	width:100%;
	height:160px;
	object-fit:cover;
	cursor:pointer;
	display:block;
}
.media-item-actions{
	display:flex;
	align-items:center;
	justify-content:space-between;
	padding:8px 10px;
	gap:8px;
}
.media-item-name{
	font-size:12px;
	color:#666;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	flex:1;
	min-width:0;
}
.file-upload-zone{
	border:2px dashed #ddd;
	border-radius:12px;
	padding:24px;
	text-align:center;
	cursor:pointer;
	transition:border-color .15s;
}
.file-upload-zone:hover{ border-color:#bbb; }
.file-upload-zone.dragover{
	border-color:var(--app-theme-color) !important;
	background:color-mix(in srgb, var(--app-theme-color) 3%, transparent);
}
.file-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill, minmax(120px, 1fr));
	gap:12px;
	margin-top:12px;
}
.file-item{
	background:#fff;
	border:1px solid #f0f0f0;
	border-radius:8px;
	padding:12px;
	text-align:center;
	position:relative;
	transition:box-shadow 0.15s;
}
.file-item:hover{
	box-shadow:0 2px 8px rgba(0,0,0,0.06);
}
.action-dropdown-wrap{ position:relative }
.action-dropdown-btn{
	background:none;
	color:#000;
	border:1px solid #ddd;
	border-radius:8px;
	padding:0;
	width:36px;
	height:36px;
	cursor:pointer;
	display:flex;
	align-items:center;
	justify-content:center;
}
.action-dropdown{
	display:none;
	position:absolute;
	right:0;
	top:40px;
	background:#fff;
	border:1px solid #e2e8f0;
	border-radius:8px;
	box-shadow:0 4px 12px rgba(0,0,0,.12);
	z-index:100;
	min-width:180px;
	overflow:hidden;
	z-index:10000
}
.action-dropdown.show{ display:block }
.action-dropdown a{
	display:flex;
	align-items:center;
	gap:8px;
	padding:10px 16px;
	font-size:13px;
	color:#333;
	text-decoration:none;
	border-bottom:1px solid #f1f1f1;
}
.action-dropdown a:last-child{ border-bottom:none }
.action-dropdown a:hover{ background:#f5f5f5 }
.empty-state{
	text-align:center;
	padding:60px 20px;
	color:#888;
}
.empty-state .material-symbols-outlined{
	font-size:48px;
	color:#ddd;
}
.empty-state h3{
	font-size:16px;
	font-weight:700;
	color:#333;
	margin:0 0 4px;
}
.empty-state p{
	font-size:14px;
	margin:0 0 16px;
}
.empty-state a{
	display:inline-flex;
	align-items:center;
	gap:4px;
	padding:8px 20px;
	background:var(--app-theme-color);
	color:#fff;
	border-radius:8px;
	font-size:14px;
	font-weight:600;
	text-decoration:none;
}
.pagination{
	display:flex;
	align-items:center;
	justify-content:center;
	gap:4px;
}
.pagination a,
.pagination span{
	height:34px;
	min-width:34px;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:0 10px;
	border-radius:8px;
	font-size:13px;
	font-weight:600;
	text-decoration:none;
	color:#555;
	transition:all 0.15s;
}
.pagination a:hover{
	background:#f0f0f0;
}
.pagination .current{
	background:var(--app-theme-color);
	color:#fff;
}
.add-row-btn,
.remove-btn{
	width:auto !important;
	display:inline-flex !important;
	background:none !important;
	color:#888;
	border:1px dashed #ddd !important;
	border-radius:8px;
	padding:6px 14px;
	font-size:13px;
	font-weight:500;
	cursor:pointer;
	align-items:center;
	gap:4px;
}
.add-row-btn:hover{ border-color:var(--app-theme-color) !important; color:var(--app-theme-color); }
.remove-btn{
	border:none !important;
	padding:4px;
	border-radius:50%;
	color:#999;
}
.remove-btn:hover{ color:#d9534f; background:#ffeaea !important; }
.line-items{ width:100%; border-collapse:collapse; table-layout:fixed; }
.line-items th{ font-size:11px; text-transform:uppercase; letter-spacing:0.5px; color:#888; font-weight:700; padding:6px 8px; text-align:left; border-bottom:1px solid #eee; }
.line-items td{ padding:4px 4px; vertical-align:middle; }
.line-items tr.dynamic-row{ display:table-row !important; }
.line-items tfoot td{ border-top:2px solid #eee; padding-top:8px; }
.toggle-switch{
	position:relative;
	width:44px;
	height:24px;
	flex-shrink:0;
}
.button-secondary{
	display:inline-flex;
	align-items:center;
	gap:4px;
	border-radius:6px;
 	background:#f5f5f5;
	color:#333;
	border:1px solid #ddd;
	cursor:pointer;
	text-decoration:none;
	white-space:nowrap;
	height:auto;
	width:auto;
}
.button-secondary:hover{ background:#eee; }
.btn-outline{
	display:inline-flex; align-items:center; justify-content:center; gap:6px;
	padding:10px 20px; border-radius:8px; font-size:14px; font-weight:700;
	background:#fff; color:var(--app-theme-color);
	border:1px solid var(--app-theme-color); cursor:pointer;
	text-decoration:none; white-space:nowrap; line-height:1;
	transition:background .15s, color .15s;
}
.btn-outline:hover{ background:var(--app-theme-color); color:#fff; }
.modal-overlay{
	position:fixed; inset:0; background:rgba(15,23,42,.55);
	display:flex; align-items:center; justify-content:center;
	z-index:1000000000; padding:20px;
}
.modal-head{
	display:flex; align-items:center; justify-content:space-between;
	margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid #e5e7eb;
}
.modal-head h3{ margin:0; font-size:18px; }
.modal-actions{
	display:flex; justify-content:flex-end; gap:10px;
	margin-top:20px; padding-top:16px; border-top:1px solid #e5e7eb;
}
main.main-min form > .main-head + .inner,
main.main-min form > .main-head + input[type=hidden] + .inner,
main.main-min form > .main-head + input[type=hidden] + input[type=hidden] + .inner{
	margin-top:-16px;
}
main.main-min .inner > .detail-tabs:first-child,
main.main-min .inner > input[type=hidden] + .detail-tabs,
main.main-min .inner > input[type=hidden] + input[type=hidden] + .detail-tabs,
main.main-min .inner > input[type=hidden] + input[type=hidden] + input[type=hidden] + .detail-tabs{
	margin-top:-8px;
}
.flex-row{
	display:flex;
	align-items:center;
	gap:10px;
}
a.detail-card{
	text-decoration:none;
	color:inherit;
}
.material-symbols-outlined.sym-14{ font-size:14px !important }
.material-symbols-outlined.sym-16{ font-size:16px !important }
.material-symbols-outlined.sym-18{ font-size:18px !important }
.material-symbols-outlined.sym-20{ font-size:20px !important }
.material-symbols-outlined.sym-mid{ vertical-align:middle !important }
.mb-12{ margin-bottom:12px !important }
.mb-14{ margin-bottom:14px !important }
.mb-16{ margin-bottom:16px !important }
.mb-20{ margin-bottom:20px !important }
.mb-24{ margin-bottom:24px !important }
.empty-state.pad-24{ padding:24px !important }
.empty-state.pad-40{ padding:40px !important }
h1{
   font-size:26px
}
article ul li{
   font-weight:inherit
}
:root{
	--header-height:60px;
	--button-color:#1B6B3A;
	--a-color:#1B6B3A;
	--aside-color-a-hover:#1B6B3A;
	--button-hover-color:#155A30;
	--app-theme-color:#1B6B3A;
	--app-theme-soft:#E8F3EC;
	--app-theme-dark:#155A30;
	--ai-accent:#7c3aed;
	--ai-accent-dark:#6d28d9;
	--ai-accent-soft:#f5f0ff;
}
button{
	width:auto;
	background:none;
	color:#333;
	border:none;
}
button > .material-symbols-outlined{ pointer-events:none; }
#mbody .add-row-btn,
.main-min .add-row-btn{ color:#5f5f5f; }
#mbody .add-row-btn:hover,
.main-min .add-row-btn:hover{ color:var(--app-theme-color); }
#mbody .table-overflow:focus-visible{ outline:2px solid var(--app-theme-color); outline-offset:2px; }
#mbody .action-menu li > button{
	display:flex;
	align-items:center;
	justify-content:center;
	width:30px;
	height:30px;
	padding:0;
	border:0;
	border-radius:6px;
	background:transparent;
	color:#555;
	font-size:0;
}
#mbody .action-menu li > button .material-symbols-outlined{ font-size:18px !important; }
@media(hover:hover){
	#mbody .action-menu li > button:hover{ background:#f0f0f0; color:#111; }
}
input, select, textarea{
	max-width:100%;
	box-sizing:border-box;
}
main{
	overflow-x:clip;
}
.navigation-aside .nav-section-header{
	color:#6b6b6b;
}
.button,
input[type='submit'],
form > button[type='submit']{
	width:auto;
	background:var(--button-color);
	color:#fff;
}
form > .button,
form > input[type='submit'],
form > button[type='submit']{
	width:100%;
}
.dash-card{
	background:#fff;
	border:1px solid #ececec;
	border-top:3px solid var(--app-theme-color);
	border-radius:14px;
	padding:18px 20px;
	display:flex;
	align-items:center;
	gap:14px;
	text-decoration:none;
	color:inherit;
	box-shadow:0 1px 2px rgba(16,40,24,0.04);
	transition:transform .15s ease, box-shadow .15s ease;
}
a.dash-card:hover{
	transform:translateY(-2px);
	box-shadow:0 10px 24px rgba(16,40,24,0.09);
}
.dash-card-icon{
	width:46px;
	height:46px;
	border-radius:12px;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:24px;
	color:var(--app-theme-color);
	background:var(--app-theme-soft);
	flex-shrink:0;
}
.dash-card-body{
	min-width:0;
}
.dash-card-value{
	font-size:30px;
	font-weight:900;
	line-height:1.1;
	letter-spacing:-0.5px;
	font-variant-numeric:tabular-nums;
}
.dash-card-label{
	font-size:12.5px;
	font-weight:600;
	color:#6b6b6b;
	margin-top:3px;
	white-space:nowrap;
	text-overflow:ellipsis;
	overflow:hidden;
}
.activity-row{
	grid-template-columns:36px 1fr auto;
}
.activity-time{
	color:#6b6b6b;
}
#mbody .activity-meta small{ color:#6b6b6b; }
.chip-bar .chip-search > .material-symbols-outlined{ color:#6b6b6b; }
.chip-search input[type=text]:focus{ border:none; }
.chip-search:focus-within{ border-color:var(--app-theme-color); }
.status-badge{ text-transform:capitalize; }
.status-open{ background:#e3f2fd; color:#1565c0 }
.status-assigned{ background:#fff3e0; color:#a34400 }
.status-in_progress{ background:#e0f2f1; color:#00796b }
.status-on_hold{ background:#fff8e1; color:#8a5a00 }
.status-completed{ background:#e8f5e9; color:#2e7d32 }
.status-closed{ background:#f5f5f5; color:#6b6b6b }
.status-active{ background:#e8f5e9; color:#2e7d32 }
.status-invited{ background:#e3f2fd; color:#1565c0 }
.status-new{ background:#e3f2fd; color:#1565c0 }
.status-reviewed{ background:#fff3e0; color:#a34400 }
.status-converted{ background:#e8f5e9; color:#2e7d32 }
.status-rejected{ background:#fce4ec; color:#c62828 }
.status-scheduled{ background:#e3f2fd; color:#1565c0 }
.status-passed{ background:#e8f5e9; color:#2e7d32 }
.status-failed{ background:#fce4ec; color:#c62828 }
.status-draft{ background:#f5f5f5; color:#6b6b6b }
.status-submitted{ background:#e3f2fd; color:#1565c0 }
.status-approved{ background:#e8f5e9; color:#2e7d32 }
.status-ordered{ background:#fff3e0; color:#a34400 }
.status-received{ background:#e0f2f1; color:#00796b }
.status-cancelled{ background:#f5f5f5; color:#6b6b6b }
.status-paused{ background:#fff8e1; color:#8a5a00 }
.status-overdue{ background:#fce4ec; color:#c62828 }
.status-pending_approval{ background:#fff8e1; color:#8a5a00 }
.status-partially_received{ background:#e0f2f1; color:#00796b }
.status-operational{ background:#e8f5e9; color:#2e7d32 }
.status-under_maintenance{ background:#fff8e1; color:#8a5a00 }
.status-out_of_service{ background:#fce4ec; color:#c62828 }
.status-decommissioned{ background:#f5f5f5; color:#6b6b6b }
.status-retired{ background:#f5f5f5; color:#6b6b6b }
.status-archived{ background:#f5f5f5; color:#6b6b6b }
.status-inactive{ background:#f5f5f5; color:#6b6b6b }
.status-disabled{ background:#f5f5f5; color:#6b6b6b }
.status-owner{ background:#ede7f6; color:#4527a0 }
.status-admin{ background:#e8eaf6; color:#283593 }
.status-primary{ background:#e8f5e9; color:#1b5e20 }
.status-executive{ background:#fff3e0; color:#a34400 }
.status-technician{ background:#e3f2fd; color:#1565c0 }
.status-requestor{ background:#fce4ec; color:#c62828 }
.priority-emergency{ background:#fce4ec !important; color:#c62828 }
.priority-high{ background:#fff3e0 !important; color:#a34400 }
.priority-medium{ background:#fff8e1 !important; color:#8a5a00 }
.priority-low{ background:#e8f5e9 !important; color:#2e7d32 }
.priority-none{ background:#f5f5f5; color:#6b6b6b }
.division-water{ background:#e3f2fd; color:#1565c0 }
.division-sewer{ background:#fce4ec; color:#880e4f }
.division-streets{ background:#fff3e0; color:#a34400 }
.division-refuse{ background:#e8f5e9; color:#2e7d32 }
.detail-header-meta{
	display:flex;
	align-items:center;
	gap:10px;
	margin-top:6px;
	font-size:13px;
	color:#6b6b6b;
	flex-wrap:wrap;
}
.detail-header-meta span + span::before{
	content:"";
	display:none;
}
.detail-header-actions{
	align-items:center;
	flex-shrink:0;
}
.detail-tabs{
	display:flex;
	gap:4px;
	border-bottom:2px solid #eee;
	margin-bottom:20px;
	overflow-x:auto;
	scrollbar-width:none;
}
.detail-tabs a{
	padding:10px 18px;
	font-size:14px;
	font-weight:600;
	color:#6b6b6b;
	text-decoration:none;
	border-bottom:2px solid transparent;
	margin-bottom:-2px;
	white-space:nowrap;
}
.detail-card{
	background:#fff;
	border:1px solid #eee;
	border-radius:12px;
	padding:20px;
	margin-bottom:16px;
}
.detail-card-head{
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;             
	gap:4px 12px;
	margin-bottom:12px;
}
.detail-card-head h3{
	font-size:15px;
	font-weight:700;
	margin:0;
}
.detail-grid{
	display:grid;
	grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));
	gap:16px;
}
.detail-field{
	display:flex;
	flex-direction:column;
}
.detail-field-label{
	font-size:12px;
	color:#6b6b6b;
	font-weight:600;
	margin-bottom:2px;
	text-transform:uppercase;
	letter-spacing:0.3px;
}
.detail-field-value{
	font-size:14px;
	font-weight:500;
	color:#1a1a1a;
	overflow-wrap:anywhere;
}
.detail-cards{
	display:grid;
	grid-template-columns:repeat(2, 1fr);
	gap:16px;
	align-items:start;
	margin-bottom:16px;
}
.detail-cards > .detail-card{ margin-bottom:0; }
.note-text{
	font-size:14px;
	line-height:1.6;
	color:#555;
	white-space:pre-wrap;
	margin:0;
}
.org-select > p{ color:#6b6b6b; }
.org-icon{
	width:44px;
	height:44px;
	border-radius:10px;
	background:var(--app-theme-color);
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:20px;
	font-weight:800;
	flex-shrink:0;
}
.org-name{
	font-size:16px;
	font-weight:700;
}
.org-role{
	font-size:13px;
	color:#6b6b6b;
}
.cost-summary{
	display:grid;
	grid-template-columns:repeat(4, 1fr);
	gap:12px;
	margin-top:16px;
}
.cost-summary-item{
	text-align:center;
	padding:12px;
	background:#f9f9f9;
	border-radius:8px;
}
.cost-summary-value{
	font-size:20px;
	font-weight:800;
	color:#1a1a1a;
}
.cost-summary-label{
	font-size:12px;
	color:#6b6b6b;
	margin-top:2px;
}
.cost-summary-item.total{
	background:var(--app-theme-color);
	color:#fff;
}
.cost-summary-item.total .cost-summary-value,
.cost-summary-item.total .cost-summary-label{
	color:#fff;
}
.checklist-item{
	display:flex;
	align-items:center;
	gap:10px;
	padding:8px 0;
	border-bottom:1px solid #f5f5f5;
}
.checklist-item:last-child{
	border-bottom:none;
}
.checklist-item input[type=checkbox]{
	width:18px;
	height:18px;
	accent-color:var(--app-theme-color);
}
.checklist-item.completed{
	text-decoration:line-through;
	color:#6b6b6b;
}
.activity-timeline{
	position:relative;
	padding-left:24px;
}
.activity-timeline::before{
	content:"";
	position:absolute;
	left:8px;
	top:0;
	bottom:0;
	width:2px;
	background:#eee;
}
.activity-item{
	position:relative;
	padding-bottom:16px;
}
.activity-item::before{
	content:"";
	position:absolute;
	left:-20px;
	top:4px;
	width:10px;
	height:10px;
	border-radius:50%;
	background:var(--app-theme-color);
	border:2px solid #fff;
}
.activity-item-time{
	font-size:11px;
	color:#6b6b6b;
}
.activity-item-text{
	font-size:13px;
	color:#555;
	line-height:1.4;
}
.form-section{
	margin-bottom:24px;
}
.form-card{
	background:#fff;
	border:1px solid #e2e5e9;
	border-radius:14px;
	padding:28px;
	display:grid;
	gap:20px;
	box-shadow:0 1px 3px rgba(0,0,0,0.04);
}
.form-card label{
	display:block;
	position:relative;
}
.form-card label > span{
	display:block;
	font-size:13px;
	font-weight:600;
	color:#555;
	margin-bottom:6px;
	padding-bottom:0;
	letter-spacing:0.1px;
}
.form-card label > span:after{
	display:none;
}
.form-card input[type=text],
.form-card input[type=email],
.form-card input[type=url],
.form-card input[type=date],
.form-card input[type=password],
.form-card input[type=number],
.form-card input[type=tel],
.form-card input[type=datetime-local],
.form-card input[type=time],
.form-card input[type=search],
.form-card select,
.form-card textarea{
	border:1px solid #d5d9dd;
	border-radius:8px;
	height:42px;
	font-size:14px;
	padding:0 14px;
	transition:border-color 0.15s;
}
.form-card textarea{
	height:auto;
	min-height:88px;
	padding:12px 14px;
}
.form-card input:focus,
.form-card select:focus,
.form-card textarea:focus{
	border-color:var(--app-theme-color);
	box-shadow:0 0 0 3px color-mix(in srgb, var(--app-theme-color) 8%, transparent);
}
.form-card select{
	padding-right:32px;
}
.form-row{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:20px;
	margin-bottom:0;
}
.form-row:has(> :only-child){
	grid-template-columns:1fr;
}
.form-row:has(> :nth-child(3)){
	grid-template-columns:1fr 1fr 1fr;
}
.section-title{
	margin:0 0 4px;
	font-size:16px;
	font-weight:700;
}
.empty-state{
	text-align:center;
	padding:60px 20px;
	color:#6b6b6b;
}
.empty-state .material-symbols-outlined{
	font-size:48px !important;  
	color:#ccc;
	display:block;
	margin-bottom:8px;
}
.empty-state h3{
	display:block;              
	font-size:18px;
	font-weight:700;
	color:#6b6b6b;
	margin:8px 0 4px;
}
.empty-state p{
	font-size:14px;
	color:#6b6b6b;
	margin:0;
}
.empty-state p:not(:last-child){
	margin-bottom:16px;
}
.btn-primary:hover{
	background:var(--button-hover-color);
}
.btn-danger{
	background:#c62828;
	border-color:#c62828;
}
.text-muted{ color:#6b6b6b; }
.text-sm{ font-size:13px; }
.text-xs{ font-size:12px; }
.text-bold{ font-weight:700; }
.text-semibold{ font-weight:600; }
.text-danger{ color:#c62828; }
.text-success{ color:#2e7d32; }
.flex-1{ flex:1; }
.mt-12{ margin-top:12px; }
.mt-16{ margin-top:16px; }
.dynamic-row label > span{
	font-size:11px;
	color:#6b6b6b;
	display:block;
	margin-bottom:2px;
}
.wh-row{
	grid-template-columns:1fr 80px 80px 80px 1fr auto;
}
.po-row{
	grid-template-columns:1.4fr 1.2fr 1.4fr 80px 100px auto;
}
.dynamic-row.kv-row{
	grid-template-columns:1fr 1fr auto;
	align-items:center;
}
.table-overflow table{
	min-width:600px;
}
.manager-aside-banner{
	position:absolute;
	bottom:0;
	left:0;
	right:0;
	background:#fff3cd;
	border-top:1px solid #ffc107;
	padding:12px 16px;
	display:flex;
	align-items:center;
	gap:8px;
	font-size:12px;
	color:#856404;
}
.manager-aside-banner > .material-symbols-outlined{
	font-size:20px;
	flex-shrink:0;
}
.manager-aside-banner > div{
	flex:1;
	min-width:0;
	line-height:1.3;
}
.manager-aside-banner > div small{
	display:block;
	font-size:10px;
	text-transform:uppercase;
	letter-spacing:0.5px;
}
.manager-aside-banner > div strong{
	display:block;
	font-weight:800;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.manager-aside-banner > a{
	color:#856404;
	flex-shrink:0;
}
.manager-aside-banner > a:hover{
	color:#533f03;
}
.pagination .pagination-info{ opacity:1; color:#6b6b6b; }
nav.pagination{ justify-content:space-between; flex-wrap:wrap; }
.prop-detail-grid > div > small{
	font-size:11px;
	font-weight:700;
	text-transform:uppercase;
	color:#6b6b6b;
	letter-spacing:0.3px;
}
.message-thread{
	display:flex;
	flex-direction:column;
	gap:12px;
	max-height:500px;
	overflow-y:auto;
	padding:4px 0;
}
.msg-bubble{
	padding:10px 14px;
	border-radius:12px;
	max-width:85%;
	font-size:14px;
	line-height:1.5;
}
.msg-tenant{
	background:#f0f0f0;
	align-self:flex-start;
	border-bottom-left-radius:4px;
}
.msg-admin{
	background:var(--app-theme-soft);
	align-self:flex-end;
	border-bottom-right-radius:4px;
}
.msg-sender{
	font-size:12px;
	font-weight:700;
	color:#555;
	margin-bottom:4px;
}
.msg-time{
	font-weight:400;
	color:#6b6b6b;
}
.msg-text{
	color:#1a1a1a;
	word-wrap:break-word;
}
.msg-attachments{
	margin-top:8px;
	display:flex;
	flex-wrap:wrap;
	gap:8px;
}
.msg-attachments img{
	max-width:200px;
	max-height:150px;
	border-radius:8px;
	border:1px solid #ddd;
}
.msg-attachments a{
	display:inline-flex;
	align-items:center;
	gap:4px;
	font-size:12px;
	color:var(--app-theme-color);
	text-decoration:none;
}
.inline-form{
	display:flex;
	gap:8px;
	align-items:flex-end;
	flex-wrap:wrap;
}
.inline-form label{
	display:flex;
	flex-direction:column;
}
.inline-form label > span{
	font-size:12px;
	color:#6b6b6b;
	margin-bottom:4px;
	padding:0;
}
.inline-form label > span:after{
	display:none;
}
.inline-form input,
.inline-form select{
	height:36px;
	font-size:13px;
}
#mbody .inline-form button:not([class]),
.main-min .inline-form button:not([class]){
	height:36px;
	padding:0 16px;
	font-size:13px;
	width:auto;
	background:var(--button-color);
	color:#fff;
	border:none;
	border-radius:8px;
	font-weight:600;
	cursor:pointer;
	white-space:nowrap;
}
.add-section{
	margin-top:12px;
	border-top:1px solid #f0f0f0;
	padding-top:12px;
}
@media (max-width:900px){
	#mbody .detail-grid{
		grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)) !important;
	}
}
@media (max-width:768px){
	.cost-summary{
		grid-template-columns:repeat(2, 1fr);
	}
	.form-row, .form-row:has(> :nth-child(3)){
		grid-template-columns:1fr;
	}
	.form-card{
		padding:16px;
	}
	#mbody{
		padding:12px;
	}
	main.main-min .inner{
		padding-left:16px;
		padding-right:16px;
	}
	.main-head{
		gap:8px;
	}
	.detail-card{
		padding:14px;
	}
	.detail-tabs a{
		padding:8px 12px;
		font-size:13px;
	}
	.detail-cards{
		grid-template-columns:1fr;
	}
	.chip-bar{
		gap:6px;
	}
	.dynamic-row.wh-row,
	.dynamic-row.po-row{
		grid-template-columns:1fr 1fr !important;
		gap:6px !important;
	}
	.wh-row > .remove-btn,
	.po-row > .remove-btn{
		grid-column:1 / -1;
		justify-self:end;
	}
	.po-row > label:nth-child(-n+3){
		grid-column:1 / -1;
	}
	.inline-form > label{
		flex:none;
	}
	.inline-form{
		flex-direction:column;
		align-items:stretch;
	}
	.inline-form label{
		width:100%;
	}
	.inline-form input,
	.inline-form select{
		width:100% !important;
	}
	.prop-detail-grid{
		grid-template-columns:1fr 1fr;
	}
	table{
		font-size:13px;
	}
	table td, table th{
		padding:8px 6px;
	}
	.msg-bubble{
		max-width:95%;
	}
	.msg-attachments img{
		max-width:140px;
		max-height:100px;
	}
}
@media (max-width:480px){
	#mbody .detail-grid{
		grid-template-columns:1fr !important;
	}
	.cost-summary-value{
		font-size:16px;
	}
	.chip-bar-left{
		width:100%;
	}
	.chip-bar{
		flex-direction:column;
		align-items:stretch;
	}
}
.insp-options{ display:flex; flex-wrap:wrap; gap:6px; position:relative; margin:8px 0 }
.insp-options label{
	display:inline-flex;
	align-items:center;
	margin:0;
	cursor:pointer;
}
.insp-options input[type=radio]{
	position:absolute;
	opacity:0;
	width:1px;
	height:1px;
	margin:0;
}
.insp-options span{
	display:inline-flex;
	align-items:center;
	min-height:44px;
	padding:0 16px;
	border:1px solid #ddd;
	border-radius:18px;
	font-size:12px;
	font-weight:700;
	color:#6b6b6b;
	background:#fff;
}
.insp-options input:focus-visible + span{
	outline:2px solid var(--app-theme-color);
	outline-offset:2px;
}
.insp-options input:checked + span{
	background:var(--app-theme-color);
	border-color:var(--app-theme-color);
	color:#fff;
}
.insp-options .insp-fail input:checked + span{
	background:#c62828;
	border-color:#c62828;
}
#mbody a:not([class]){ text-decoration-thickness:1px; text-underline-offset:2px; text-decoration-color:color-mix(in srgb, currentColor 40%, transparent); }
#mbody a:not([class]):hover{ text-decoration-color:currentColor; }
.action-menu:focus-within ul{
	opacity:1;
	visibility:visible;
}
.action-menu:focus-within > .material-symbols-outlined{
	opacity:0;
}
.chip-search:focus-within{
	width:auto;
	min-width:180px;
	max-width:260px;
	padding:0 12px;
	gap:6px;
}
.chip-search:focus-within input[type=text]{
	opacity:1;
	width:100%;
}
.dash-cards > .dash-card{ box-sizing:border-box; }
@media(max-width:1100px){
	.dash-cards{ flex-wrap:wrap; overflow:visible; }
	.dash-cards > .dash-card{ flex:1 1 calc(50% - var(--grid-gap)); min-width:0; }
}
@media(max-width:600px){
	.dash-cards .dash-card{ padding:14px; gap:10px; }
	.dash-cards .dash-card-icon{ width:38px; height:38px; font-size:20px; border-radius:10px; }
	.dash-cards .dash-card-value{ font-size:22px; letter-spacing:-0.3px; overflow-wrap:anywhere; }
	.dash-cards .dash-card-label{ white-space:normal; overflow:visible; text-overflow:clip; line-height:1.3; }
}
@media(max-width:480px){
	.dash-cards .dash-card{ flex-direction:column; align-items:stretch; gap:8px; }
	.dash-cards .dash-card-icon{ width:32px; height:32px; font-size:18px; border-radius:8px; }
	.dash-cards .dash-card-value{ font-size:20px; }
}
.table-overflow:has(.action-menu){ padding-bottom:4px; }
@media(max-width:768px){
	.table-overflow :where(td, th):first-child{ min-width:140px; }
	.form-card .table-overflow table{ min-width:0; }
	.form-card .table-overflow :where(td, th):first-child{ min-width:0; }
	.form-card .table-overflow th{ white-space:normal; }
	.form-card .table-overflow input{ min-width:72px; padding:0 10px; }
}
@media(max-width:600px){
	.flex-row > .chip-filters{ min-width:100%; }
	.flex-row:has(> .chip-filters){ margin-bottom:16px; }
}
a.button-secondary, span.button-secondary, a.btn-primary, a.btn-danger,
#mbody button.btn-primary, #mbody button.button-secondary, #mbody button.btn-danger,
.main-min button.btn-primary, .main-min button.button-secondary, .main-min button.btn-danger,
.detail-header-actions > span[data-post]{
	display:inline-flex; align-items:center; justify-content:center; gap:6px;
	width:auto; height:36px; padding:0 16px; box-sizing:border-box;
	font-size:13px; font-weight:600; line-height:1; border-radius:8px;
}
button.button-secondary:hover{ color:#333; }
.chip-btn:not(.active):hover{ color:#555; }
a.btn-danger:hover,
button.btn-danger:hover{ background:#c9302c; border-color:#c9302c; color:#fff; }
form > button[type='submit'].btn-danger{ background:#c62828; border-color:#c62828; color:#fff; }
form > button[type='submit'].btn-danger:hover{ background:#c9302c; border-color:#c9302c; }
.action-menu li > span[data-post] > *{ pointer-events:none; }
@media(max-width:700px){
	.detail-header .detail-header-actions{ flex-wrap:wrap; }
	.detail-header-actions > span[data-post]{ flex:1; justify-content:center; }
}
#mbody .flex-row > form{ margin:0; }
#mbody select.select-sm{ height:auto; font-size:13px; padding:4px 28px 4px 8px; border:1px solid #ddd; border-radius:6px; background-color:#fff; width:auto; }
a.chip-btn{ text-decoration:none; }
[hidden]{ display:none !important; }
#mbody .remove-btn,
.main-min .remove-btn{ color:#6b6b6b; }
#mbody .remove-btn:hover,
.main-min .remove-btn:hover{ color:#c62828; }
@media(pointer:coarse){
	#mbody .remove-btn,
	.main-min .remove-btn{ min-width:44px; min-height:44px; justify-content:center; }
}
.toggle-item{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:16px;
	padding:12px 0;
	border-bottom:1px solid #f0f0f0;
}
.toggle-item:last-child{ border-bottom:none; }
.toggle-item strong{ font-size:14px; }
.toggle-item p{ font-size:12px; color:#6b6b6b; margin:2px 0 0; }
.toggle-switch input{
	position:absolute;
	opacity:0;
	width:0;
	height:0;
	margin:0;
}
.toggle-switch .slider{
	position:absolute;
	inset:0;
	margin:0;
	background:#8a8a8a;         
	border-radius:24px;
	cursor:pointer;
	transition:background .2s;
}
.toggle-switch .slider::before{
	content:"";
	position:absolute;
	width:18px;
	height:18px;
	left:3px;
	top:3px;
	background:#fff;
	border-radius:50%;
	transition:transform .2s;
}
.toggle-switch input:checked + .slider{ background:var(--app-theme-color); }
.toggle-switch input:checked + .slider::before{ transform:translateX(20px); }
.toggle-switch input:focus-visible + .slider{ box-shadow:0 0 0 3px color-mix(in srgb, var(--app-theme-color) 35%, transparent); }
.chip-checks{ display:flex; flex-wrap:wrap; gap:8px; }
.chip-checks label,
.form-card .chip-checks label{
	display:inline-flex;
	align-items:center;
	gap:6px;
	position:relative;
	margin:0;
	padding:6px 14px;
	min-height:36px;
	box-sizing:border-box;
	border:1px solid #ddd;
	border-radius:20px;
	background:#fff;
	font-size:13px;
	font-weight:600;
	color:#333;
	cursor:pointer;
	user-select:none;
}
.chip-checks label input{ position:absolute; opacity:0; width:0; height:0; margin:0; }
.chip-checks label.selected,
.chip-checks label:has(input:checked){
	background:var(--app-theme-color);
	border-color:var(--app-theme-color);
	color:#fff;
}
.chip-checks label:has(input:focus-visible){ outline:2px solid var(--app-theme-color); outline-offset:2px; }
.chip-checks label small{ opacity:.85; }
.form-group-label{
	display:block;
	font-size:13px;
	font-weight:600;
	color:#555;
	margin-bottom:6px;
}
.actions-row{
	justify-content:flex-end;
	flex-wrap:wrap;
	gap:8px;
}
#mbody .btn-primary.btn-block,
.main-min .btn-primary.btn-block{
	display:flex;
	width:100%;
	min-height:48px;
	height:auto;
	font-size:15px;
}
.dynamic-row.item-row{
	grid-template-columns:1fr auto;
	align-items:center;
}
@media(min-width:769px){
	.inline-form .field-num{ flex:0 0 90px; }
	.inline-form .field-date{ flex:0 0 150px; }
	.inline-form .field-grow{ flex:1 1 160px; min-width:150px; }
}
.inline-form .field-check{
	flex-direction:row;
	align-items:center;
	gap:6px;
	height:36px;
	font-size:13px;
}
@media(max-width:768px){
	.table-overflow th.hide-mobile,
	.table-overflow td.hide-mobile{ display:none; }
}
@media(max-width:600px){
	.table-overflow table:not(:has(th:nth-child(4))){ min-width:0; }
}
.table-overflow td small{ overflow-wrap:anywhere; }
#mbody .prop-detail-grid > div > span:first-child,
#mbody .prop-detail-notes > span:first-child{ color:#6b6b6b; }
.form-section-head .status-badge{ margin-left:auto; }
.text-warn{ color:#8a5a00; }
#mbody button.action-dropdown-btn{
	width:36px;
	height:36px;
	padding:0;
	border-radius:8px;
	background:#fff;
	color:#333;
	justify-content:center;
}
.detail-header-actions .action-dropdown a{
	height:auto;
	flex:none;
	justify-content:flex-start;
	padding:10px 16px;
	border:0;
	border-bottom:1px solid #f1f1f1;
	border-radius:0;
	background:#fff;
	font-size:13px;
	font-weight:500;
	white-space:nowrap;
}
.detail-header-actions .action-dropdown a:last-child{ border-bottom:0; }
.detail-header-actions .action-dropdown a:hover{ background:#f5f5f5; }
@media(max-width:700px){
	.detail-header-actions .action-dropdown-wrap{ flex:0 0 auto; }
}
.media-item > a{ display:block; }
.media-item > a > img{ width:100%; height:160px; object-fit:cover; display:block; }
.file-upload-zone .material-symbols-outlined{
	display:block;
	font-size:36px !important;      
	color:#bbb;
	margin:0 auto 8px;
}
.file-upload-zone p{ margin:8px 0 0; font-size:13px; color:#6b6b6b; }
.file-upload-zone:focus-visible{ outline:2px solid var(--app-theme-color); outline-offset:2px; }
.header-org{
	font-weight:700;
	color:#333;
	text-decoration:none;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
	min-width:0;
}
aside a.logo{
	display:flex;
	align-items:center;
	gap:8px;
	font-weight:900;
	font-size:17px;
	color:var(--text-color);
	text-decoration:none;
	letter-spacing:-0.3px;
}
aside a.logo .material-symbols-outlined{ font-size:26px !important; color:var(--app-theme-color); }
.navigation-inline li.notif-bell{ position:relative; }
.navigation-inline li > .notif-badge{
	position:absolute;
	top:2px;
	right:2px;
	min-width:16px;
	height:16px;
	padding:0 4px;
	box-sizing:border-box;
	border-radius:8px;
	background:#c62828;
	color:#fff;
	font-size:10px;
	font-weight:800;
	line-height:16px;
	text-align:center;
	pointer-events:none;
}
.grace-banner{ margin:var(--grid-gap) var(--grid-gap) 0; }
.danger-card{ border-color:#f0c9c9; }
.danger-card h1,
.danger-card h2{ margin:0 0 8px; color:#b3322b; }      
.danger-card h3{ margin:22px 0 6px; font-size:15px; }
.form-section-head.danger .material-symbols-outlined{ color:#c62828; }
.account-signout{ margin-top:40px; padding-top:20px; border-top:1px solid #eee; }
.delete-wrap{ max-width:620px; }
.confirm-box{ margin:22px 0; }
.confirm-box input{ width:160px; max-width:100%; letter-spacing:1px; text-transform:uppercase; }
.check-card{ max-width:860px; }
.check-list{ list-style:none; margin:0; padding:0; }
.check-list li{
	display:flex;
	gap:10px;
	align-items:flex-start;
	padding:9px 0;
	border-bottom:1px solid #f4f4f4;
}
.check-list li:last-child{ border-bottom:none; }
.check-list .material-symbols-outlined{ font-size:19px !important; flex:0 0 auto; }
.check-list strong{ font-size:14px; }
.check-list small{ display:block; font-size:12px; color:#6b6b6b; overflow-wrap:anywhere; }
.check-ok .material-symbols-outlined{ color:#2e7d32; }
.check-warn .material-symbols-outlined{ color:#b26a00; }
.check-fail .material-symbols-outlined{ color:#c62828; }
.check-skip .material-symbols-outlined{ color:#757575; }
.ai-card{
	background:linear-gradient(135deg, color-mix(in srgb, var(--ai-accent) 4%, #fff), #fff 55%);
	border-color:color-mix(in srgb, var(--ai-accent) 17%, #fff);
}
.ai-pill{
	display:inline-flex;
	align-items:center;
	gap:4px;
	padding:3px 10px;
	border-radius:20px;
	font-size:12px;
	font-weight:700;
	line-height:1.4;
	white-space:nowrap;
	color:var(--ai-accent);
	background:var(--ai-accent-soft);
}
.ai-pill .material-symbols-outlined{ font-size:14px !important; }
.ai-icon{ color:var(--ai-accent); }
a.btn-primary.ai-btn,
#mbody button.btn-primary.ai-btn,
.main-min button.btn-primary.ai-btn{
	background:var(--ai-accent);
	border-color:var(--ai-accent);
	color:#fff;
}
a.btn-primary.ai-btn:hover,
#mbody button.btn-primary.ai-btn:hover,
.main-min button.btn-primary.ai-btn:hover{
	background:var(--ai-accent-dark);
	border-color:var(--ai-accent-dark);
}
.ai-suggest{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:8px;
	margin-top:8px;
	padding:10px 14px;
	background:var(--ai-accent-soft);
	border:1px solid color-mix(in srgb, var(--ai-accent) 25%, #fff);
	border-radius:8px;
}
.user header .navigation-inline li a.active{ background:var(--app-theme-color); color:#fff; }
@media(min-width:769px){
	body.user > aside{
		scrollbar-width:thin;
		scrollbar-color:#cfcfcf transparent;
		scrollbar-gutter:stable;
		padding-right:6px;
	}
}
.detail-card > .detail-grid:last-child{ margin-bottom:0; }
#mbody .detail-header-actions > button:not([class]){ border-radius:8px; }
.detail-header-actions .action-dropdown a.text-danger{ color:#c62828; }
#mbody .table-overflow.can-scroll-right{ box-shadow:inset -26px 0 16px -18px rgba(0,0,0,0.25); }
#mbody .table-overflow.can-scroll-left{ box-shadow:inset 26px 0 16px -18px rgba(0,0,0,0.25); }
#mbody .table-overflow.can-scroll-left.can-scroll-right{ box-shadow:inset -26px 0 16px -18px rgba(0,0,0,0.25), inset 26px 0 16px -18px rgba(0,0,0,0.25); }
#mbody .table-overflow.table-fit table{ min-width:0; }
@media(max-width:768px){
	#mbody .table-overflow.table-fit :where(td, th):first-child{ min-width:0; }
	#mbody .table-overflow.table-fit th{ white-space:normal; }
	#mbody .table-overflow.table-fit td{ font-size:14px; }
}
.table-overflow td.action-menu{
	padding-left:22px;
	background:linear-gradient(90deg, rgba(255,255,255,0), #fff 16px);
}
@media(max-width:768px){
	.user header .navigation-inline li > a{ position:relative; }
	.user header .navigation-inline li > a::after{ content:""; position:absolute; inset:-6px; }
	.navigation-aside-open aside .navigation-aside li > a{ min-height:44px; }
}
@media(pointer:coarse){
	#mbody td > input[type=checkbox]{ width:22px; height:22px; }
}
.ai-page #mbody{ padding:0 !important; display:flex; height:calc(100vh - var(--header-height)); height:calc(100dvh - var(--header-height)); position:relative; }
.ai-sidebar{ width:260px; border-right:1px solid #eee; background:#fafafa; padding:16px; overflow-y:auto; flex-shrink:0; }
.ai-sidebar-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.ai-sidebar h3{ font-size:14px; margin:0; color:#555; }
#mbody button.ai-icon-btn{ width:44px; height:44px; padding:0; border:none; border-radius:10px; background:none; color:var(--app-theme-dark); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
#mbody button.ai-icon-btn:hover{ background:var(--app-theme-soft); }
#mbody button.ai-icon-btn.ai-conv-toggle{ width:auto; gap:6px; padding:0 12px 0 8px; font-size:14px; font-weight:600; }
#mbody button.ai-conv-item{ display:block; width:100%; height:auto; text-align:left; padding:10px 12px; border-radius:8px; font-size:13px; color:#555; text-decoration:none; margin-bottom:4px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#mbody button.ai-conv-item:hover, #mbody button.ai-conv-item.active{ background:var(--app-theme-soft); color:var(--app-theme-dark); }
.ai-main{ flex:1; display:flex; flex-direction:column; min-width:0; }
.ai-mobile-bar{ display:none; }
#mbody button.ai-sidebar-close{ display:none; }
.ai-messages{ flex:1; overflow-y:auto; padding:24px; }
.ai-msg{ margin-bottom:16px; display:flex; gap:10px; max-width:800px; }
.ai-msg.user{ margin-left:auto; flex-direction:row-reverse; }
.ai-msg-avatar{ width:32px; height:32px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:14px; font-weight:700; flex-shrink:0; }
.ai-msg.user .ai-msg-avatar{ background:var(--app-theme-color); color:#fff; }
.ai-msg.assistant .ai-msg-avatar{ background:#7c3aed; color:#fff; }
.ai-msg-body{ background:#fff; border:1px solid #eee; border-radius:12px; padding:12px 16px; font-size:14px; line-height:1.6; max-width:600px; min-width:0; overflow-wrap:anywhere; }
.ai-msg.user .ai-msg-body{ background:var(--app-theme-color); color:#fff; border-color:var(--app-theme-color); }
.ai-msg.assistant .ai-msg-body{ white-space:pre-wrap; }
.ai-msg.error .ai-msg-body{ color:#c62828; }
.ai-input-bar{ border-top:1px solid #eee; padding:16px 24px; padding-bottom:max(16px, env(safe-area-inset-bottom)); background:#fff; }
.ai-input-wrap{ display:flex; gap:8px; max-width:800px; margin:0 auto; }
.ai-input-wrap textarea{ flex:1; min-width:0; resize:none; border:1px solid #ddd; border-radius:10px; padding:12px 16px; font-size:14px; font-family:inherit; height:48px; min-height:48px; line-height:22px; } 
#mbody .ai-input-wrap button{ width:48px; height:48px; flex:0 0 48px; padding:0; border-radius:10px; background:#7c3aed; border:none; color:#fff; cursor:pointer; display:flex; align-items:center; justify-content:center; }
#mbody .ai-input-wrap button:hover{ background:#6d28d9; }
.ai-empty{ text-align:center; padding:80px 24px; color:#6b6b6b; }
.ai-empty > .material-symbols-outlined{ font-size:48px !important; color:#c4b5fd; }
.ai-empty h3{ margin:12px 0 4px; font-size:18px; color:#333; }
.ai-empty p{ margin:0; font-size:14px; color:#6b6b6b; } 
.ai-suggestions{ display:flex; gap:8px; flex-wrap:wrap; justify-content:center; margin-top:16px; }
.ai-typing{ display:flex; gap:4px; padding:8px 0; }
.ai-typing span{ width:8px; height:8px; border-radius:50%; background:#bbb; animation:aiDot 1.2s infinite; }
.ai-typing span:nth-child(2){ animation-delay:0.2s; }
.ai-typing span:nth-child(3){ animation-delay:0.4s; }
@keyframes aiDot{ 0%,80%,100%{opacity:0.3} 40%{opacity:1} }
@media(max-width:768px){
	.ai-sidebar{ display:none; position:absolute; inset:0 auto 0 0; width:min(300px, 85vw); z-index:5; box-shadow:4px 0 16px rgba(0,0,0,0.12); }
	.ai-page.ai-convs-open .ai-sidebar{ display:block; }
	#mbody button.ai-sidebar-close{ display:inline-flex; }
	.ai-mobile-bar{ display:flex; justify-content:space-between; align-items:center; padding:4px 8px; border-bottom:1px solid #eee; background:#fff; }
	.ai-messages{ padding:16px 12px; }
	.ai-empty{ padding:40px 12px; }
	.ai-input-bar{ padding:10px 12px; padding-bottom:max(10px, env(safe-area-inset-bottom)); }
}
.qr-grid{ display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.qr-label{ border:1px solid #ddd; border-radius:8px; padding:16px; text-align:center; page-break-inside:avoid; }
.qr-label h4{ font-size:13px; margin:8px 0 2px; overflow-wrap:anywhere; }
.qr-label p{ font-size:11px; color:#6b6b6b; margin:0; }          
.qr-code{ width:120px; height:120px; margin:0 auto; }
.qr-code svg{ display:block; width:100%; height:100%; }
@media screen{
	.qr-grid{ grid-template-columns:repeat(auto-fill, minmax(160px, 1fr)); gap:12px; }
	.qr-label{ background:#fff; padding:14px 10px; }
}
@media print{
	body.page-qr-labels *{ visibility:hidden; }
	body.page-qr-labels #qrLabels, body.page-qr-labels #qrLabels *{ visibility:visible; }
	body.page-qr-labels #qrLabels{ position:absolute; left:0; top:0; }
}
#assetMapContainer{ width:100%; height:calc(100vh - var(--header-height)); height:calc(100dvh - var(--header-height)); position:relative; }
#assetMap{ width:100%; height:100%; }
.layer-panel{ position:absolute; top:12px; right:12px; z-index:1000; box-sizing:border-box; width:230px; max-height:calc(100% - 48px); overflow-y:auto; padding:0 14px; background:#fff; border-radius:10px; box-shadow:0 2px 12px rgba(0,0,0,0.12); }
.layer-panel[open]{ padding-bottom:14px; }
.layer-panel > summary{ display:flex; align-items:center; gap:6px; min-height:44px; cursor:pointer; font-size:14px; font-weight:700; color:#1a1a1a; list-style:none; }
.layer-panel > summary::-webkit-details-marker{ display:none; }
.layer-panel > summary .layer-chevron{ margin-left:auto; color:#6b6b6b; transition:transform .15s; }
.layer-panel[open] > summary .layer-chevron{ transform:rotate(180deg); }
.layer-group{ border:0; margin:4px 0 0; padding:0; min-width:0; }
.layer-group + .layer-group{ margin-top:12px; }
.layer-group > legend{ padding:0; margin-bottom:2px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:0.3px; color:#6b6b6b; }
.layer-panel label{ display:flex; align-items:center; gap:8px; min-height:32px; margin:0; font-size:13px; color:#333; cursor:pointer; }
.layer-panel label input{ margin:0; flex-shrink:0; }
.layer-dot{ width:10px; height:10px; border-radius:50%; flex-shrink:0; }
.layer-panel-foot{ margin-top:12px; padding-top:12px; border-top:1px solid #eee; }
.layer-panel-foot p{ margin:0 0 8px; }
.layer-panel .button-secondary{ width:100%; }
@media(max-width:600px){
	.layer-panel{ width:auto; max-width:calc(100% - 24px); }
	.layer-panel label{ min-height:44px; }
}
.doc-frame{ width:100%; height:600px; border:1px solid #eee; border-radius:8px; }
@media(max-width:768px){
	.doc-frame{ height:70vh; }
}
#mbody .detail-header-actions .btn-danger{ background:#c62828; border-color:#c62828; color:#fff; }
#mbody .detail-header-actions .btn-danger:hover{ background:#c9302c; border-color:#c9302c; }
.main-min .form-tab:has(~ .actions-row) > .form-section:last-of-type{ margin-bottom:24px; }
.main-min .po-row label > span,
.main-min .wh-row label > span{ font-size:13px; font-weight:600; color:#555; margin-bottom:6px; }
.po-foot{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; }
.po-total{ margin-top:8px; font-size:14px; color:#555; }
.po-total strong{ margin-left:6px; font-size:16px; color:#1a1a1a; }
@media(max-width:768px){
	.main-min .dynamic-row.po-row{ grid-template-columns:1fr 1fr 44px !important; gap:10px !important; padding:14px 0; }
	.main-min .dynamic-row.wh-row{ grid-template-columns:repeat(3, minmax(0, 1fr)) !important; gap:10px !important; padding:14px 0; }
	.main-min .wh-row > label:first-child{ grid-column:1 / -1; }
	.main-min .wh-row > label:nth-child(5){ grid-column:1 / 3; }
	.main-min .po-row > .remove-btn,
	.main-min .wh-row > .remove-btn{ grid-column:auto; justify-self:center; align-self:end; }
}
.cal-header{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.cal-nav{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.cal-nav h2{ font-size:18px; font-weight:800; margin:0 4px; }
#mbody .cal-nav button{ min-width:36px; height:36px; padding:0 10px; border:1px solid #ddd; border-radius:8px; background:#fff; color:#333; font-size:13px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); border:1px solid #eee; border-radius:12px; overflow:hidden; background:#fff; }
.cal-day-header{ padding:10px; text-align:center; font-size:12px; font-weight:700; color:#6b6b6b; background:#fafafa; border-bottom:1px solid #eee; }
.cal-day{ min-height:100px; padding:6px; border-right:1px solid #f0f0f0; border-bottom:1px solid #f0f0f0; position:relative; min-width:0; }
.cal-day:nth-child(7n){ border-right:none; }
.cal-day.other-month{ background:#fafafa; }
.cal-day.today{ background:var(--app-theme-soft); }
.cal-day-num{ font-size:13px; font-weight:700; color:#333; margin-bottom:4px; }
.cal-day.other-month .cal-day-num{ color:#6b6b6b; font-weight:600; }
.cal-day.today .cal-day-num{ color:var(--app-theme-dark); }
.cal-event{ display:block; padding:2px 6px; border-radius:4px; font-size:11px; font-weight:600; margin-bottom:2px; text-decoration:none; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cal-event.priority-emergency{ background:#fce4ec; color:#c62828; }
.cal-event.priority-high{ background:#fff3e0; color:#a34400; }
.cal-event.priority-medium{ background:#fff8e1; color:#8a5a00; }
.cal-event.priority-low{ background:#e8f5e9; color:#2e7d32; }
.cal-event.priority-none{ background:#f5f5f5; color:#6b6b6b; }
.cal-event.pm{ background:#e3f2fd; color:#1565c0; }
.cal-agenda{ display:none; }
.cal-agenda-day{ padding:10px 0; border-bottom:1px solid #f0f0f0; }
.cal-agenda-day:last-child{ border-bottom:none; }
.cal-agenda-date{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.3px; color:#6b6b6b; margin:0 0 6px; }
.cal-agenda-day.today .cal-agenda-date{ color:var(--app-theme-dark); }
.cal-agenda .cal-event{ font-size:14px; padding:10px 12px; margin-bottom:6px; border-radius:8px; white-space:normal; }
@media(max-width:700px){
	.cal-grid{ display:none; }
	.cal-agenda{ display:block; }
}
.dash-hero-main{
	background:linear-gradient(135deg, var(--app-theme-dark) 0%, var(--app-theme-color) 55%, color-mix(in srgb, var(--app-theme-color) 85%, #fff) 100%);
	display:flex;
	flex-direction:column;
}
.dash-hero-main .dash-sparkline{ flex:1 1 64px; min-height:64px; }
.dash-hero-main .dash-hero-value{
	display:block;
	font-size:48px;
	font-weight:900;
	letter-spacing:-1.2px;
	margin:6px 0 8px;
	line-height:1;
	color:#fff;
	font-variant-numeric:tabular-nums;
}
.dash-pill{
	display:inline-flex;
	align-items:center;
	gap:4px;
	background:rgba(0,0,0,0.18);
	padding:4px 12px;
	border-radius:14px;
	font-weight:700;
	color:#fff;
}
.dash-pill .material-symbols-outlined{
	font-size:16px;
}
.dash-pill.bad{ background:#c62828; }
.dash-pill.good{ background:rgba(0, 50, 20, 0.3); }
a.dash-kpi{
	color:inherit;
	text-decoration:none;
}
.dash-kpi strong{
	font-variant-numeric:tabular-nums;
}
.dash-kpi-info{ border-left-color:#1565c0; }
.dash-kpi-info strong{ color:#1565c0; }
.dash-action-new{ margin-top:auto; }
.cash-list{
	display:flex;
	flex-direction:column;
	gap:8px;
}
.cash-row{
	display:grid;
	grid-template-columns:1fr 1.2fr auto;
	gap:14px;
	align-items:center;
	padding:6px 0;
}
.cash-row-meta strong{
	display:block;
	font-size:13px;
	font-weight:700;
}
.cash-row-meta small{
	display:block;
	font-size:11px;
	color:#6b6b6b;
	margin-top:2px;
}
.cash-row-bar{
	height:8px;
	background:#f0f0f0;
	border-radius:4px;
	overflow:hidden;
}
.cash-row-fill{
	height:100%;
	background:linear-gradient(90deg, color-mix(in srgb, var(--app-theme-color) 65%, #fff), var(--app-theme-color));
	border-radius:4px;
}
.cash-row-balance{
	font-size:14px;
	font-weight:800;
	white-space:nowrap;
}
.month-bar.created{ background:linear-gradient(to top, #1565c0, #5b94d6); }
.month-bar.completed{ background:linear-gradient(to top, var(--app-theme-color), color-mix(in srgb, var(--app-theme-color) 60%, #fff)); }
.legend-dot.created{ background:#1565c0; }
.legend-dot.completed{ background:var(--app-theme-color); }
.top-donors{
	display:flex;
	flex-direction:column;
	gap:6px;
}
.top-donor-row{
	display:grid;
	grid-template-columns:32px 1fr auto;
	align-items:center;
	gap:12px;
	padding:8px 4px;
	border-bottom:1px solid #f5f5f5;
}
.top-donor-row:last-child{ border-bottom:none; }
.top-donor-rank{
	font-size:13px;
	font-weight:800;
	color:#6b6b6b;
}
.top-donor-row:nth-child(1) .top-donor-rank{ color:#8a6a00; }
.top-donor-row:nth-child(2) .top-donor-rank{ color:#757575; }
.top-donor-row:nth-child(3) .top-donor-rank{ color:#a35a1e; }
.top-donor-meta strong{
	display:block;
	font-size:14px;
	font-weight:700;
}
.top-donor-meta small{
	display:block;
	font-size:11px;
	color:#6b6b6b;
	margin-top:2px;
}
.top-donor-amount{
	font-size:15px;
	font-weight:800;
	color:var(--app-theme-color);
}
.ai-input-row{
	display:flex;
	gap:8px;
}
.ai-input-row input{
	flex:1;
	height:46px;
	font-size:14px;
	border-radius:12px;
}
.exec-range{ display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:10px; }
.exec-range .chip-filters{ flex:1; margin:0; }
.exec-range .inline-form{ margin:0; }
.exec-chart{ min-height:300px; }
.exec-chart.is-empty{ min-height:140px; display:flex; align-items:center; justify-content:center; }
.exec-ai-presets{ display:flex; gap:6px; flex-wrap:wrap; margin-bottom:14px; }
#mbody .ai-input-row button{ width:auto; height:46px; padding:0 22px; background:#7c3aed; border:1px solid #7c3aed; border-radius:12px; color:#fff; display:inline-flex; align-items:center; justify-content:center; }
.exec-ai-result{ margin-top:16px; }
.exec-ai-loading{ text-align:center; padding:24px; color:#6b6b6b; }
.exec-ai-loading .material-symbols-outlined{ font-size:24px !important; animation:spin 1s linear infinite; }
.exec-ai-loading p{ margin:8px 0 0; font-size:13px; color:#6b6b6b; }
.exec-ai-error{ padding:16px; background:#fef2f2; border-radius:8px; color:#991b1b; font-size:14px; }
.exec-ai-summary{ padding:14px 16px; background:#f3e8ff; border-radius:8px; margin-bottom:16px; font-size:14px; line-height:1.6; color:#3b0764; border-left:4px solid #7c3aed; }
.exec-ai-summary strong{ display:flex; align-items:center; gap:6px; margin-bottom:6px; }
.exec-ai-empty{ padding:16px; background:#f9f9f9; border-radius:8px; font-size:14px; }
.exec-total-row td{ border-top:2px solid #e5e5e5; font-weight:700; }
@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
#mbody .dash-kpi small,
#mbody .dash-kpi span,
#mbody .dash-panel-link,
#mbody .dash-actions-empty p,
#mbody .month-label{
	color:#6b6b6b;
}
#mbody .dash-panel-link:hover{ color:var(--app-theme-color); }
#mbody .dash-panel-head{ gap:12px; }
#mbody .dash-panel-head > .dash-panel-link{ white-space:nowrap; flex-shrink:0; }
.dash-row-2 > .dash-panel{ min-width:0; }
.dash-panel .table-overflow td:first-child{ white-space:nowrap; }
@media(max-width: 1100px){
	.dash-kpi-strip{ grid-template-columns:repeat(3, 1fr); }
}
@media(max-width: 900px){
	.dash-hero{ grid-template-columns:1fr; }
	.dash-row-2{ grid-template-columns:1fr; }
}
@media(max-width: 600px){
	.dash-kpi-strip{ grid-template-columns:repeat(2, 1fr); }
	.dash-hero-main .dash-hero-value{ font-size:36px; }
	.monthly-chart{ height:120px; gap:4px; }
	.month-label{ font-size:9px; }
	#mbody .activity-row,
	.public-wrap .activity-row{ grid-template-columns:36px minmax(0, 1fr); row-gap:2px; }
	#mbody .activity-row > .activity-icon,
	.public-wrap .activity-row > .activity-icon{ grid-row:span 2; }
	#mbody .activity-row > .activity-time,
	.public-wrap .activity-row > .activity-time{ grid-column:2; }
}
.dispatch-layout{
	display:grid;
	grid-template-columns:300px minmax(0, 1fr);
	gap:16px;
	align-items:start;
}
.dispatch-layout:focus{ outline:none; }
.dispatch-queue-wrap{ min-width:0; }
.dispatch-col{
	box-sizing:border-box;
	background:#f7f7f8;
	border:1px solid #eee;
	border-radius:12px;
	padding:10px;
	transition:border-color .15s, background-color .15s;
}
.dispatch-col.is-over{
	border-color:var(--app-theme-color);
	background:var(--app-theme-soft);
	outline:2px dashed var(--app-theme-color);
	outline-offset:-4px;
}
.dispatch-col-head{
	display:flex;
	align-items:center;
	gap:10px;
	min-height:36px;
	padding:0 2px 8px;
}
.dispatch-col-head h2,
.dispatch-section-title{
	margin:0;
	font-size:12px;
	font-weight:700;
	line-height:1.4;
	text-transform:uppercase;
	letter-spacing:0.4px;
	color:#555;
}
.dispatch-section-title{ padding:8px 2px 10px; }
.dispatch-count{
	display:inline-block;
	min-width:20px;
	margin-left:6px;
	padding:1px 7px;
	box-sizing:border-box;
	border:1px solid #e5e5e5;
	border-radius:10px;
	background:#fff;
	font-size:11px;
	font-weight:700;
	line-height:1.5;
	letter-spacing:0;
	text-align:center;
	color:#555;
	vertical-align:1px;
}
.dispatch-techs{ min-width:0; }
.dispatch-tech-scroll{
	display:flex;
	align-items:flex-start;
	gap:12px;
	overflow-x:auto;
	padding-bottom:8px;
	scroll-snap-type:x proximity;
	scrollbar-width:thin;
}
.dispatch-tech{
	flex:0 0 260px;
	scroll-snap-align:start;
}
.dispatch-avatar{
	display:flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
	width:32px;
	height:32px;
	border-radius:50%;
	background:var(--app-theme-soft);
	color:var(--app-theme-dark);
	font-size:12px;
	font-weight:800;
}
.dispatch-avatar .material-symbols-outlined{ font-size:18px !important; }
.dispatch-col-name{ flex:1; min-width:0; }
.dispatch-col-name h3{
	margin:0;
	font-size:14px;
	font-weight:700;
	line-height:1.3;
	color:#1a1a1a;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.dispatch-col-name > span{
	display:block;
	font-size:12px;
	line-height:1.4;
	color:#6b6b6b;
}
#mbody button.dispatch-col-toggle{ display:none; }
.dispatch-col-toggle .material-symbols-outlined{ font-size:22px !important; transition:transform .15s; }
.dispatch-col .empty-state h3{ margin:4px 0 0; font-size:14px; }
.dispatch-col-empty{
	margin:0;
	padding:14px 0 6px;
	font-size:12px;
	text-align:center;
	color:#6b6b6b;
}
.dispatch-more{
	display:block;
	padding:4px 4px 2px;
	font-size:12px;
	font-weight:700;
	color:#555;
}
a.dispatch-more{ color:var(--a-color); }
.dispatch-card{
	box-sizing:border-box;
	margin-bottom:8px;
	padding:10px 12px;
	border:1px solid #eee;
	border-left:3px solid #6b6b6b;
	border-radius:10px;
	background:#fff;
	box-shadow:0 1px 2px rgba(0,0,0,0.04);
}
.dispatch-card:last-child{ margin-bottom:0; }
.dispatch-prio-emergency{ border-left-color:#c62828; }
.dispatch-prio-high{ border-left-color:#a34400; }
.dispatch-prio-medium{ border-left-color:#8a5a00; }
.dispatch-prio-low{ border-left-color:#2e7d32; }
.dispatch-prio-none{ border-left-color:#6b6b6b; }
@media(hover:hover){
	.dispatch-card[draggable="true"]{ cursor:grab; }
	.dispatch-card[draggable="true"]:hover{ border-color:#d5d5d5; }
}
.dispatch-card.is-dragging{ opacity:0.5; }
.dispatch-card.is-busy{ opacity:0.55; pointer-events:none; }
.dispatch-card-top{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	margin-bottom:4px;
}
.dispatch-card-top > a{ font-size:13px; font-weight:700; }
.dispatch-card-title{
	display:-webkit-box;
	-webkit-box-orient:vertical;
	-webkit-line-clamp:2;
	line-clamp:2;
	overflow:hidden;
	margin:0 0 2px;
	font-size:13px;
	font-weight:600;
	line-height:1.4;
	color:#1a1a1a;
	overflow-wrap:anywhere;
}
.dispatch-card-meta{
	margin:0;
	font-size:12px;
	line-height:1.4;
	color:#6b6b6b;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.dispatch-card-chips{
	display:flex;
	flex-wrap:wrap;
	align-items:center;
	gap:4px 8px;
	margin-top:6px;
	font-size:12px;
	color:#6b6b6b;
}
.dispatch-late{ color:#c62828; font-weight:700; }
.dispatch-card-foot{
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:8px;
	min-height:30px;
	margin-top:8px;
	font-size:12px;
	color:#6b6b6b;
}
#mbody button.button-secondary.dispatch-assign{
	flex-shrink:0;
	height:30px;
	padding:0 12px;
	font-size:12px;
}
.dispatch-sr{
	position:absolute;
	width:1px;
	height:1px;
	margin:-1px;
	padding:0;
	overflow:hidden;
	clip:rect(0, 0, 0, 0);
	white-space:nowrap;
	border:0;
}
.dispatch-undo{
	position:fixed;
	left:50%;
	bottom:24px;
	z-index:9998;
	display:flex;
	align-items:center;
	gap:14px;
	box-sizing:border-box;
	max-width:calc(100vw - 32px);
	padding:6px 6px 6px 16px;
	transform:translateX(-50%);
	border-radius:10px;
	background:#1a1a1a;
	color:#fff;
	font-size:14px;
	font-weight:600;
	box-shadow:0 8px 24px rgba(0,0,0,0.25);
}
.dispatch-undo[hidden]{ display:none; }
.dispatch-undo > span{ min-width:0; overflow-wrap:anywhere; }
#mbody .dispatch-undo button{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
	width:auto;
	height:36px;
	margin:0;
	padding:0 14px;
	border:1px solid rgba(255,255,255,0.6);
	border-radius:8px;
	background:transparent;
	color:#fff;
	font-size:14px;
	font-weight:700;
	line-height:1;
	cursor:pointer;
}
#mbody .dispatch-undo button:hover{ background:rgba(255,255,255,0.14); color:#fff; }
#mbody .dispatch-undo button:focus-visible{ outline:2px solid #fff; outline-offset:2px; }
.dispatch-picker{
	box-sizing:border-box;
	width:min(440px, calc(100vw - 32px));
	max-height:min(640px, calc(100vh - 64px));
	padding:0;
	border:0;
	border-radius:14px;
	background:#fff;
	color:#333;
	box-shadow:0 24px 48px rgba(15,23,42,0.24);
	overflow:hidden;
}
.dispatch-picker[open]{ display:flex; flex-direction:column; }
.dispatch-picker::backdrop{ background:rgba(15,23,42,0.55); }
.dispatch-picker-head{
	display:flex;
	align-items:flex-start;
	gap:12px;
	flex:0 0 auto;
	padding:14px 10px 12px 16px;
	border-bottom:1px solid #f0f0f0;
}
.dispatch-picker-titles{ flex:1; min-width:0; padding-top:4px; }
.dispatch-picker-titles h3{
	margin:0;
	font-size:16px;
	font-weight:700;
	line-height:1.3;
	color:#1a1a1a;
}
.dispatch-picker-titles p{
	margin:2px 0 0;
	font-size:13px;
	line-height:1.4;
	color:#6b6b6b;
	overflow-wrap:anywhere;
}
#mbody button.dispatch-picker-close{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	flex-shrink:0;
	width:44px;
	height:44px;
	margin:0;
	padding:0;
	border:0;
	border-radius:10px;
	background:none;
	color:#555;
	cursor:pointer;
}
#mbody button.dispatch-picker-close:hover{ background:#f3f3f3; color:#1a1a1a; }
.dispatch-picker-close .material-symbols-outlined{ font-size:22px !important; }
.dispatch-picker-list{
	flex:1 1 auto;
	min-height:0;
	padding:8px;
	overflow-y:auto;
}
#mbody button.dispatch-pick{
	display:flex;
	align-items:center;
	justify-content:flex-start;
	gap:12px;
	width:100%;
	min-height:52px;
	height:auto;
	margin:0;
	padding:8px 10px;
	border:0;
	border-radius:10px;
	background:none;
	color:#333;
	font-family:inherit;
	font-size:14px;
	line-height:1.3;
	text-align:left;
	white-space:normal;
	cursor:pointer;
}
#mbody button.dispatch-pick:hover{ background:#f5f5f5; color:#333; }
#mbody button.dispatch-pick:focus-visible{ outline:2px solid var(--app-theme-color); outline-offset:-2px; }
.dispatch-pick > *{ pointer-events:none; }
.dispatch-pick-main{ flex:1; min-width:0; }
.dispatch-pick-main > b{
	display:block;
	font-size:14px;
	font-weight:700;
	color:#1a1a1a;
	white-space:nowrap;
	overflow:hidden;
	text-overflow:ellipsis;
}
.dispatch-pick-main > span{ display:block; font-size:12px; color:#6b6b6b; }
.dispatch-pick-tag{
	flex-shrink:0;
	padding:2px 8px;
	border-radius:10px;
	background:var(--app-theme-soft);
	color:var(--app-theme-dark);
	font-size:11px;
	font-weight:700;
}
.dispatch-pick-queue .dispatch-avatar{ background:#f0f0f0; color:#555; }
@media(max-width:1100px){
	.dispatch-layout{ grid-template-columns:260px minmax(0, 1fr); }
	.dispatch-tech{ flex-basis:240px; }
}
@media(min-width:769px){
	.dispatch-col-cards{
		max-height:max(360px, calc(100vh - 280px));
		overflow-y:auto;
		scrollbar-width:thin;
	}
	.dispatch-queue .dispatch-col-cards{ max-height:max(360px, calc(100vh - 236px)); }
}
@media(max-width:768px), (pointer:coarse){
	#mbody button.button-secondary.dispatch-assign{ height:44px; padding:0 18px; font-size:14px; }
}
@media(max-width:768px){
	.dispatch-layout{ display:block; }
	.dispatch-queue-wrap{ margin-bottom:12px; }
	.dispatch-tech-scroll{ display:block; overflow:visible; padding:0; }
	.dispatch-tech{ margin-bottom:8px; padding:4px 6px 4px 10px; }
	.dispatch-tech .dispatch-col-head{ position:relative; min-height:44px; padding:2px 0; cursor:pointer; }
	.dispatch-tech:not(.is-open) .dispatch-col-cards{ display:none; }
	.dispatch-tech.is-open .dispatch-col-cards{ padding:4px 4px 8px 0; }
	#mbody button.dispatch-col-toggle{
		display:inline-flex;
		align-items:center;
		justify-content:center;
		flex-shrink:0;
		width:44px;
		height:44px;
		margin:0;
		padding:0;
		border:0;
		border-radius:10px;
		background:none;
		color:#555;
	}
	#mbody button.dispatch-col-toggle{ position:static; }   
	#mbody button.dispatch-col-toggle::after{ content:""; position:absolute; inset:0; border-radius:8px; }
	#mbody button.dispatch-col-toggle:focus-visible{ outline:none; }
	#mbody button.dispatch-col-toggle:focus-visible::after{ outline:2px solid var(--app-theme-color); outline-offset:0; }
	@media(hover:hover){
		#mbody button.dispatch-col-toggle:hover{ background:#eee; color:#1a1a1a; }
	}
	.dispatch-tech.is-open .dispatch-col-toggle .material-symbols-outlined{ transform:rotate(180deg); }
	.dispatch-card{ padding:12px; }
	.dispatch-picker{
		width:100%;
		max-width:100%;
		max-height:85vh;
		margin:auto 0 0;
		border-radius:18px 18px 0 0;
		padding-bottom:env(safe-area-inset-bottom);
	}
	.dispatch-undo{
		left:12px;
		right:12px;
		bottom:calc(12px + env(safe-area-inset-bottom));
		justify-content:space-between;
		max-width:none;
		transform:none;
	}
	#mbody .dispatch-undo button{ height:44px; padding:0 18px; }
}
@media(prefers-reduced-motion:reduce){
	.dispatch-col,
	.dispatch-col-toggle .material-symbols-outlined{ transition:none; }
}
body.public{ min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; }
body.public main{ margin:0 !important; left:0; max-width:none; }
.public-header{ display:flex; justify-content:space-between; align-items:center; padding:14px 24px; border-bottom:1px solid #eee; position:static; height:auto; width:auto; background:#fff; }
.public-logo{ display:flex; align-items:center; gap:8px; font-weight:900; font-size:18px; letter-spacing:-0.3px; color:var(--text-color); text-decoration:none; }
.public-logo .material-symbols-outlined{ color:var(--app-theme-color); font-size:26px; }
.public-signin{ font-size:14px; font-weight:700; color:var(--app-theme-dark); text-decoration:none; }
.public-main{ flex:1; min-height:0; margin:0; max-width:none; }
.public-footer{ display:block; border-top:1px solid #eee; margin-top:40px; padding:20px 24px; background:#fafafa; }
.public-footer-inner{ max-width:820px; margin:0 auto; display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; font-size:13px; color:#6b6b6b; }
.public-footer-inner nav{ display:flex; gap:18px; flex-wrap:wrap; }
.public-footer-inner a{ color:#666; text-decoration:none; font-weight:600; }
.skip-link{ position:absolute; left:-9999px; top:0; z-index:100000; background:var(--app-theme-dark); color:#fff; padding:10px 18px; border-radius:0 0 8px 0; font-weight:700; text-decoration:none; }
.skip-link:focus{ left:0; }
body.ios-wrapper a[href="/register"]{ display:none !important; }
.public-wrap{ max-width:860px; margin:24px auto; padding:0 16px; }
.public-wrap-sm{ max-width:560px; }
.public-wrap form,
.public-wrap .form-card{ grid-template-columns:minmax(0, 1fr); }
.legal-page{ max-width:760px; margin:0 auto; padding:40px 24px 0; }
.legal-page.public-wrap-sm{ max-width:560px; }
.legal-head{ border-bottom:2px solid var(--app-theme-color); padding-bottom:16px; margin-bottom:24px; }
.legal-head h1{ font-size:28px; font-weight:800; margin:0 0 6px; letter-spacing:-0.4px; }
.legal-meta{ font-size:13px; color:#6b6b6b; margin:0; }
.legal-body{ font-size:15px; line-height:1.7; color:#333; }
.legal-lede{ font-size:16px; color:#222; }
.legal-body h2{ font-size:20px; font-weight:800; margin:36px 0 12px; padding-top:20px; border-top:1px solid #f0f0f0; }
.legal-body h3{ font-size:16px; font-weight:700; margin:24px 0 6px; }
.legal-body p{ margin:0 0 14px; }
.legal-body ul{ margin:0 0 16px; padding-left:22px; }
.legal-body li{ margin:0 0 8px; }
.legal-body a{ color:var(--app-theme-dark); font-weight:600; }
.legal-body > .legal-meta{ margin-top:32px; }
.legal-tldr{ background:var(--app-theme-soft); border:1px solid var(--app-theme-color); border-radius:12px; padding:18px 20px; margin:24px 0; }
.legal-tldr h2{ border:none; padding:0; margin:0 0 10px; font-size:15px; display:flex; align-items:center; gap:8px; color:var(--app-theme-dark); text-transform:uppercase; letter-spacing:0.5px; }
.legal-tldr ul{ margin:0; padding-left:20px; }
.legal-tldr li{ font-size:14px; }
.support-contact{ background:linear-gradient(180deg, var(--app-theme-soft), #fff 80%); border:1px solid var(--app-theme-color); border-radius:14px; padding:22px 26px; margin:8px 0 32px; }
.legal-body .support-contact-title{ display:flex; align-items:center; gap:8px; margin:0 0 10px; padding:0; border:none; font-size:18px; color:var(--app-theme-dark); }
.support-contact-title .material-symbols-outlined{ color:var(--app-theme-color); }
.legal-body .support-contact-sub{ color:#6b6b6b; font-size:13px; margin-bottom:0; }
.install-page h1, .install-page h3{ margin:0 0 6px; }
.install-foot{ text-align:center; margin:18px 0; }
.install-steps{ counter-reset:step; margin:14px 0 0; padding:0; list-style:none; }
.install-steps li{ counter-increment:step; display:flex; align-items:flex-start; gap:12px; padding:12px 0; border-bottom:1px solid #f0f0f0; font-size:15px; line-height:1.5; }
.install-steps li:last-child{ border-bottom:none; }
.install-steps li::before{ content:counter(step); flex:0 0 28px; height:28px; display:flex; align-items:center; justify-content:center; background:var(--app-theme-color); color:#fff; border-radius:50%; font-weight:800; font-size:14px; }
.install-device-head{ display:flex; align-items:center; gap:8px; margin:0 0 2px; font-size:18px; }
.install-device-head .material-symbols-outlined{ font-size:22px; color:var(--app-theme-color); }
.public-result{ text-align:center; padding:40px 28px; }
.public-result > .material-symbols-outlined{ font-size:44px !important; } 
.public-result .ok{ color:#2e7d32; }
.public-result .err{ color:#c62828; }
.public-result h2{ margin:12px 0 6px; }
.portal-code{ font-size:28px; font-weight:900; letter-spacing:2px; color:var(--app-theme-dark); margin:12px 0; }
.portal-code-input{ text-transform:uppercase; font-size:18px; text-align:center; letter-spacing:2px; }
@media (max-width:600px){
	.legal-page{ padding:28px 16px 0; }
	.legal-head h1{ font-size:24px; }
	.support-contact{ padding:18px; }
}
.map-page #mbody{ padding:0 !important; }
.map-page #mapContainer{ width:100%; height:calc(100vh - var(--header-height)); height:calc(100dvh - var(--header-height)); position:relative; }
.map-page #map{ width:100%; height:100%; }
.map-controls{ position:absolute; top:12px; right:12px; z-index:1000; background:#fff; border-radius:10px; padding:12px; box-shadow:0 2px 12px rgba(0,0,0,0.1); }
.map-controls fieldset{ border:0; margin:0; padding:0; }
.map-controls legend, .map-legend-title{ font-weight:700; font-size:14px; margin-bottom:6px; padding:0; }
.map-controls label{ display:flex; align-items:center; gap:8px; min-height:32px; font-size:13px; cursor:pointer; margin:0; }
.map-legend{ position:absolute; bottom:20px; left:12px; z-index:1000; background:#fff; border-radius:10px; padding:12px 16px; box-shadow:0 2px 12px rgba(0,0,0,0.1); font-size:12px; }
.map-legend .map-legend-title{ font-size:12px; margin-bottom:4px; }
.map-legend ul{ list-style:none; margin:0; padding:0; }
.map-legend li{ display:flex; align-items:center; gap:6px; padding:2px 0; }
.map-legend-dot{ width:12px; height:12px; border-radius:50%; flex-shrink:0; }
.map-legend-dot.operational{ background:#2e7d32; }
.map-legend-dot.under_maintenance{ background:#b26a00; } 
.map-legend-dot.out_of_service{ background:#c62828; }
.map-legend-dot.workorder{ background:#1565c0; }
@media(max-width:600px){
	.map-controls{ top:8px; right:8px; padding:8px 10px; }
	.map-controls label{ min-height:44px; }
	.map-legend{ bottom:12px; left:8px; padding:8px 12px; }
}
@media print{
	header, aside, footer, nav,
	.detail-tabs, .report-filters, .report-print-row, .no-print,
	.action-menu, .manager-aside-banner,
	.button-secondary, .btn-primary{
		display:none !important;
	}
	body.user main, main{
		margin:0 !important;
		padding:0 !important;
		max-width:none !important;
		width:100% !important;
		left:0 !important;
	}
	.table-overflow{ overflow:visible !important; }
	.table-overflow table{ min-width:0 !important; }
	#mbody .table-overflow th.hide-mobile,
	#mbody .table-overflow td.hide-mobile{ display:table-cell !important; }
}
.scroll-tabs{
	background:
		linear-gradient(90deg, #fff 40%, rgba(255,255,255,0)) left center / 28px 100% no-repeat local,
		linear-gradient(270deg, #fff 40%, rgba(255,255,255,0)) right center / 28px 100% no-repeat local,
		linear-gradient(90deg, rgba(0,0,0,0.14), rgba(0,0,0,0)) left center / 14px 100% no-repeat scroll,
		linear-gradient(270deg, rgba(0,0,0,0.14), rgba(0,0,0,0)) right center / 14px 100% no-repeat scroll,
		#fff;
}
@media(min-width:769px){
	.report-tabs{ gap:0; }
	.report-tabs a{ padding:10px 12px; }
}
.report-filters{
	display:flex;                 
	flex-wrap:wrap;
	align-items:flex-end;
	gap:12px;
	margin:0 0 20px;
	padding:14px 16px;
	background:#fff;
	border:1px solid #eee;
	border-radius:12px;
}
.report-filters label{ margin:0; flex:0 1 170px; min-width:140px; font-size:13px; }
.report-filters label > span{ display:block; font-size:12px; font-weight:600; color:#6b6b6b; padding:0 0 4px; }
.report-filters label > span::after{ display:none; }   
.report-filters input,
.report-filters select{ width:100%; height:36px; padding:0 10px; font-size:14px; border:1px solid #ddd; border-radius:8px; }
.report-filters input:focus,
.report-filters select:focus{ border-color:var(--app-theme-color); }
.report-filters > .btn-primary{ flex:0 0 auto; }
.report-filters > .button-secondary{ margin-left:auto; }
.report-print-row{ display:flex; justify-content:flex-end; margin:0 0 16px; }
@media(max-width:600px){
	.report-filters label{ flex:1 1 calc(50% - 12px); }
	.report-filters > .btn-primary{ flex:1 1 100%; }
	.report-filters > .report-print{ display:none !important; }   
	.report-print-row{ display:none; }
}
.report-builder{
	display:grid;
	grid-template-columns:300px minmax(0, 1fr);
	gap:24px;
	align-items:start;
}
.report-builder .chip-checks{ max-height:220px; overflow-y:auto; }
@media(max-width:900px){
	.report-builder{ grid-template-columns:1fr; }
}
.rb-table td{ white-space:nowrap; }
.rb-table td.rb-long{ white-space:normal; min-width:220px; }
.report-total td{ border-top:2px solid #e0e0e0; }
.copy-field{ display:flex; flex-wrap:wrap; gap:8px; align-items:stretch; }
.copy-field input{ flex:1 1 180px; min-width:0; }   
#mbody .copy-field > button{ flex:0 0 auto; height:auto; min-height:40px; }
.scroll-tabs ~ * .form-card > input[type=hidden]:first-child + .toggle-item{ padding-top:0; }
.sla-table input{ max-width:160px; }
.form-card textarea[data-cat-div]{ min-height:0; field-sizing:content; }
@media(max-width:600px){
	.perm-matrix table{ min-width:0; }
	.perm-matrix thead{ display:none; }
	.perm-matrix tbody tr{
		display:grid;
		grid-template-columns:repeat(3, minmax(0, 1fr));
		gap:10px 12px;
		padding:12px 0;
		border-bottom:1px solid #f0f0f0;
	}
	.perm-matrix tbody td,
	.perm-matrix tbody tr:last-child td{ display:block; min-width:0; padding:0; border:0; font-size:14px; }   
	.perm-matrix tbody td:first-child{ grid-column:1 / -1; min-width:0; font-weight:700; }
	.perm-matrix tbody td[data-label]::before{
		content:attr(data-label);
		display:block;
		font-size:11px;
		font-weight:700;
		text-transform:uppercase;
		letter-spacing:0.3px;
		color:#6b6b6b;
	}
}
.scan-page #scanContainer{ max-width:500px; margin:0 auto; text-align:center; }
.scan-page #video{ width:100%; max-width:500px; border-radius:12px; background:#000; }
.scan-page .scan-off{ display:none; }
.scan-page.scan-camera-off #video{ display:none; }
.scan-page.scan-camera-off .scan-off{ display:block; }
.scan-page #scanResult{ display:none; padding:20px; background:var(--app-theme-soft); border-radius:12px; margin-top:16px; }
.scan-page #scanResult h3{ margin:8px 0; }
.scan-page #scanResult .detail-header-meta{ justify-content:center; margin-bottom:12px; }
.material-symbols-outlined.scan-result-icon{ font-size:40px !important; }
.scan-result-icon.found{ color:#2e7d32; }
.scan-result-icon.missing{ color:#a34400; }
.scan-status{ margin-top:16px; }
.scan-manual{ margin-top:24px; border-top:1px solid #eee; padding-top:16px; text-align:left; }
.scan-manual .form-card{ padding:16px; }
.cell-meta{ display:none; }
@media(max-width:768px){
	.table-overflow.list-fit table{ min-width:0; }
	.list-fit td{ overflow-wrap:anywhere; vertical-align:top; font-size:14px; }   
	.list-fit td.action-menu{ vertical-align:middle; }
	.list-fit td.cell-code{ white-space:nowrap; overflow-wrap:normal; }
	.list-fit .cell-meta{
		display:flex;
		flex-wrap:wrap;
		align-items:center;
		gap:4px 6px;
		margin-top:4px;
		font-size:13px;
		color:#6b6b6b;
	}
}
.list-actions{ display:flex; flex-wrap:wrap; gap:8px; }
@media(max-width:600px){
	.list-actions{ width:100%; }
	.list-actions > *{ flex:1 1 auto; }
}
@media(max-width:600px){
	#mbody .wo-header .detail-header-actions > a,
	#mbody .wo-header .detail-header-actions > button{ min-height:44px; height:auto; }
	#mbody .wo-header .action-dropdown-btn{ width:44px; height:44px; }
}
.detail-card.status-card{
	border-left:4px solid var(--app-theme-color);
	background:color-mix(in srgb, var(--app-theme-color) 3%, #fff);
}
.status-card-actions{ display:flex; flex-wrap:wrap; gap:8px; }
@media(max-width:600px){
	#mbody .status-card-actions > a,
	#mbody .status-card-actions > button{
		flex:1 1 calc(50% - 8px);
		min-height:44px;
		height:auto;
	}
}
.person-list{ display:flex; flex-wrap:wrap; gap:8px; }
.person-chip{
	display:flex;
	align-items:center;
	gap:8px;
	padding:8px 14px;
	background:#f5f5f5;
	border-radius:8px;
	min-width:0;
}
.person-avatar{
	width:32px;
	height:32px;
	border-radius:50%;
	background:var(--app-theme-color);
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:13px;
	font-weight:700;
	flex-shrink:0;
}
.person-chip strong{ display:block; font-size:14px; font-weight:600; }
.person-chip small{ display:block; font-size:12px; color:#6b6b6b; overflow-wrap:anywhere; }
@media(max-width:600px){
	.person-list > .person-chip{ flex:1 1 100%; }
}
#mbody .checklist-item{ font-size:14px; }
#mbody .checklist-item p{ margin:2px 0 0; }
.form-card .fake-input{
	box-sizing:border-box;
	min-height:42px;
	padding:4px 14px !important;
	border:1px solid #d5d9dd;
	border-radius:8px;
	background:#fff;
}
.form-card .fake-input input[type=text]{ height:32px; padding:0 !important; border:0 !important; font-size:14px; }
.form-card .fake-input input[type=text]:focus{ box-shadow:none; }
.form-card .fake-input:focus-within{
	border-color:var(--app-theme-color);
	box-shadow:0 0 0 3px color-mix(in srgb, var(--app-theme-color) 8%, transparent);
}
.form-card > .dynamic-rows:not(:has(> *)){ display:none; }
.step-list{ display:grid; gap:12px; counter-reset:step; margin-bottom:12px; }
.step-list > .step-card{ counter-increment:step; }
.step-head{ display:flex; align-items:center; gap:8px; }
.step-head h4{ flex:1; margin:0; font-size:14px; font-weight:700; }
.step-list > .step-card .step-head h4::before{ content:counter(step) ". "; }
.proc-step{ display:flex; gap:14px; padding:14px 0; border-bottom:1px solid #f0f0f0; }
.proc-step:last-child{ border-bottom:0; }
.proc-step-num{
	width:36px;
	height:36px;
	border-radius:50%;
	background:var(--app-theme-color);
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:15px;
	font-weight:800;
	flex-shrink:0;
}
.proc-step-body{ flex:1; min-width:0; padding-top:6px; }
.proc-step-body p{ margin:0; font-size:15px; line-height:1.6; }
.proc-step-body .proc-step-note{ font-size:13px; color:#a34400; margin-top:6px; }
.proc-step-body .proc-step-meta{ font-size:12px; color:#6b6b6b; margin-top:4px; }
.detail-card.safety-card{ border-left:3px solid #e65100; background:#fff8f0; }
.safety-card .detail-card-head h3{ color:#a34400; }
.bullet-list{ margin:0; padding-left:20px; font-size:14px; line-height:1.7; }
.bullet-list li{ margin-bottom:4px; }
.card-grid{ display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:16px; margin-bottom:16px; }
.card-list{ display:grid; gap:12px; margin-bottom:16px; }
.card-grid > .detail-card,
.card-list > .detail-card{ margin-bottom:0; }
.card-grid > a.detail-card:hover,
.card-list > a.detail-card:hover{ border-color:#ddd; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.detail-card-foot{ margin-top:10px; padding-top:8px; border-top:1px solid #f0f0f0; font-size:13px; }
@media(max-width:480px){
	.card-grid{ grid-template-columns:1fr; }
}
.signature-pad{ position:relative; border:1px solid #ddd; border-radius:8px; background:#fafafa; margin-bottom:8px; overflow:hidden; }
.signature-pad::before{
	content:"\00D7";
	position:absolute;
	left:16px;
	bottom:30px;
	font-size:22px;
	line-height:1;
	color:#757575;
	pointer-events:none;
}
.signature-pad::after{
	content:"";
	position:absolute;
	left:42px;
	right:16px;
	bottom:34px;
	border-bottom:1px solid #c8c8c8;
	pointer-events:none;
}
.signature-pad canvas{ position:relative; z-index:1; display:block; width:100%; height:150px; cursor:crosshair; touch-action:none; }
@media(max-width:600px){
	.signature-pad canvas{ height:180px; }
}
.form-card > .cost-summary{ margin-top:0; }
#mbody .tech-actions{ display:flex; gap:10px; flex-wrap:wrap; margin-top:4px; }
#mbody .tech-actions > .btn-primary,
#mbody .tech-actions > .button-secondary{ flex:1 1 0; min-width:120px; min-height:48px; height:auto; justify-content:center; border-radius:10px; font-size:15px; font-weight:700; }
.insp-item{ padding:12px 0; border-bottom:1px solid #f0f0f0; }
.insp-item:last-child{ border-bottom:0; }
.insp-item-label{ display:block; font-size:14px; font-weight:600; }
.insp-item input[type=text]{ width:100%; min-height:44px; }
.insp-item .insp-options{ gap:8px; }
.insp-item .insp-options label{ flex:0 1 112px; }
.insp-item .insp-options span{
	justify-content:center;
	box-sizing:border-box;
	width:100%;
	border-radius:22px;
	font-size:14px;
	color:#555;
}
@media(hover:hover){
	.insp-item .insp-options label:hover input:not(:checked) + span{ border-color:#aaa; color:#1a1a1a; }
}
.insp-item .insp-options input[value=na]:checked + span{ background:#6b6b6b; border-color:#6b6b6b; color:#fff; }
@media(max-width:600px){
	.insp-item .insp-options label{ flex:1 1 0; }
}
@media(max-width:768px){
	#mbody .inline-form .field-check{ justify-content:flex-start; gap:10px; min-height:44px; height:auto; font-size:14px; }
	#mbody .inline-form .field-check input[type=checkbox]{ flex:0 0 auto; width:20px !important; height:20px; margin:0; accent-color:var(--app-theme-color); }
}
.file-field input[type=file]{ box-sizing:border-box; max-width:100%; height:auto; padding:6px; font-size:14px; }
.file-field input[type=file]::file-selector-button{
	height:36px;
	margin-right:10px;
	padding:0 16px;
	border:1px solid #ddd;
	border-radius:8px;
	background:#f5f5f5;
	color:#333;
	font-family:inherit;
	font-size:13px;
	font-weight:600;
	cursor:pointer;
}
.file-field input[type=file]::file-selector-button:hover{ background:#eee; }
.comment-compose{ margin-top:16px; border-top:1px solid #eee; padding-top:16px; display:grid; gap:8px; }
.comment-compose textarea{ width:100%; resize:vertical; }
@media(max-width:600px){
	#mbody .comment-compose button.button-secondary,
	#mbody .comment-compose button.btn-primary{ min-height:44px; height:auto; }
}
.voice-status{ font-size:12px; }
.comment-file-preview{ gap:8px; flex-wrap:wrap; font-size:12px; color:#6b6b6b; }
@keyframes pulse{ 0%,100%{ opacity:1; } 50%{ opacity:.4; } }
