/* 树海旅行管理后台样式 */
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #F4F6F4; color: #1B2320; font-family: -apple-system, 'PingFang SC', 'Microsoft YaHei', sans-serif; font-size: 14px; }
a { color: #12815B; text-decoration: none; }

.layout { display: flex; min-height: 100vh; }
.side { width: 190px; flex: 0 0 190px; background: #123D2E; color: #BFD8CD; padding: 18px 0; }
.side .brand { display: flex; align-items: center; gap: 8px; padding: 0 18px 16px; color: #fff; font-weight: 800; font-size: 15px; }
.side .lg { width: 26px; height: 26px; border-radius: 8px; background: #1A9E6E; display: grid; place-items: center; font-size: 13px; }
.sitem { display: block; padding: 12px 18px; font-size: 13.5px; border-left: 3px solid transparent; }
.sitem.on { background: rgba(255,255,255,.08); color: #fff; border-left-color: #1A9E6E; font-weight: 700; }
.sideuser { padding: 18px; font-size: 12px; opacity: .8; margin-top: 12px; }

.main { flex: 1; padding: 22px 26px; max-width: 1100px; }
.mtitle { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.mtitle h3 { font-size: 18px; }

.statrow { display: flex; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.stat { flex: 1; min-width: 130px; background: #fff; border: 1px solid #E6EAE7; border-radius: 12px; padding: 14px 16px; }
.stat .l { font-size: 12px; color: #8A938D; }
.stat .v { font-size: 22px; font-weight: 800; margin-top: 4px; }

.panel { background: #fff; border: 1px solid #E6EAE7; border-radius: 12px; padding: 16px 18px; margin-bottom: 14px; }
.panel h4 { font-size: 14px; margin-bottom: 10px; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th { text-align: left; color: #8A938D; font-weight: 600; padding: 8px 10px; border-bottom: 1px solid #E6EAE7; white-space: nowrap; }
td { padding: 9px 10px; border-bottom: 1px solid #F0F3F1; }
tr:last-child td { border-bottom: 0; }

.chip { display: inline-block; font-size: 11px; padding: 2px 10px; border-radius: 9px; white-space: nowrap; }
.c-g { background: #E2F3EB; color: #12815B; } .c-o { background: #FCEFE0; color: #C07A2E; }
.c-r { background: #FBE5E1; color: #E4451F; } .c-n { background: #EEF1EF; color: #5A6660; }

.mbtn { background: #12815B; color: #fff; border: 0; border-radius: 10px; padding: 9px 16px; font-size: 13px; font-weight: 700; cursor: pointer; }
.mbtn.ghost { background: #fff; color: #12815B; border: 1px solid #9FD4BE; }
.mbtn.red { background: #E4451F; }
.mbtn.sm { padding: 5px 10px; font-size: 12px; border-radius: 8px; }

input, select, textarea { border: 1px solid #DDE5E0; border-radius: 8px; padding: 8px 10px; font-size: 13px; background: #F9FBFA; font-family: inherit; }
input:focus, select:focus, textarea:focus { outline: 0; border-color: #1A9E6E; background: #fff; }

.frow { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid #EEF1EF; font-size: 13px; }
.frow label { width: 130px; flex: 0 0 130px; color: #39443D; font-weight: 600; }
.frow input, .frow select, .frow textarea { flex: 1; }
.hint { font-size: 12px; color: #8A938D; line-height: 1.8; margin-top: 8px; }
.warnbox { background: #FDF6E3; color: #9A7B2E; border-radius: 10px; padding: 10px 14px; font-size: 12px; line-height: 1.7; margin-top: 10px; }

.flash { border-radius: 10px; padding: 10px 16px; font-size: 13px; margin-bottom: 14px; }
.flash.g { background: #E2F3EB; color: #12815B; }
.flash.r { background: #FBE5E1; color: #E4451F; }

.dialog { background: #fff; border: 1px solid #E6EAE7; border-radius: 12px; padding: 16px 18px; margin-bottom: 14px; }
dialog::backdrop { background: rgba(10,20,15,.4); }

.loginwrap { min-height: 100vh; display: grid; place-items: center; background: linear-gradient(150deg, #1A9E6E, #0B6349); }
.loginbox { background: #fff; border-radius: 16px; padding: 34px 34px 28px; width: 340px; display: flex; flex-direction: column; gap: 12px; }
.loginbox .lbrand { display: flex; align-items: center; gap: 10px; font-weight: 800; font-size: 17px; margin-bottom: 8px; }
.loginbox .lg { width: 34px; height: 34px; border-radius: 10px; background: linear-gradient(140deg,#1A9E6E,#0B6349); display: grid; place-items: center; font-size: 16px; }
.loginbox input { padding: 11px 14px; }
.loginbox .mbtn { margin-top: 6px; padding: 12px 0; }
