/* 打针服药管理系统 - 全局样式 */

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: "Microsoft YaHei", "PingFang SC", sans-serif;
    background: #f4f6f8;
    color: #333;
    font-size: 15px;
}
a { color: #2a7ae2; text-decoration: none; }
a:hover { text-decoration: underline; }
h2 { margin: 16px 0 12px; }
.muted { color: #888; font-size: 13px; }
.txt-green { color: #1a9c46; }

/* 顶栏 */
.topbar {
    background: #2c3e50;
    color: #fff;
    padding: 0 16px;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
}
.topbar .brand {
    font-size: 17px;
    font-weight: bold;
    padding: 12px 16px 12px 0;
}
.topbar nav { display: flex; flex-wrap: wrap; }
.topbar nav a {
    color: #cfd8e3;
    padding: 14px 12px;
    display: inline-block;
}
.topbar nav a:hover { background: #34495e; text-decoration: none; color: #fff; }
.topbar nav a.active { background: #1a9c46; color: #fff; }
.topbar nav a.logout { margin-left: auto; color: #f0b2a0; }

.container { max-width: 1080px; margin: 0 auto; padding: 12px 16px 60px; }

/* 提示条 */
.flash { padding: 10px 14px; border-radius: 6px; margin: 10px 0; }
.flash.ok { background: #e6f7ec; color: #1a7a3a; border: 1px solid #bfe8cd; }
.flash.err { background: #fdecea; color: #b3261e; border: 1px solid #f5c6c2; }

.alerts { margin: 10px 0; }
.alert {
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}
.alert a { margin-left: auto; white-space: nowrap; }
.alert.danger { background: #fdecea; color: #b3261e; border-left: 5px solid #d93025; }
.alert.warn { background: #fff8e1; color: #8a6d00; border-left: 5px solid #f5b400; }
.alert.ok { background: #e6f7ec; color: #1a7a3a; border-left: 5px solid #1a9c46; }

/* 卡片 */
.cards { display: flex; flex-wrap: wrap; gap: 14px; margin: 14px 0; }
.card {
    background: #fff;
    border-radius: 8px;
    padding: 16px 18px;
    flex: 1 1 300px;
    box-shadow: 0 1px 3px rgba(0,0,0,.08);
}
.card h3 { margin: 0 0 10px; }
.big-ok { font-size: 26px; color: #1a9c46; font-weight: bold; }
.big-no { font-size: 26px; color: #d93025; font-weight: bold; }
.med-line { display: flex; align-items: center; gap: 10px; }

/* 进度条 */
.bar { background: #e3e8ee; border-radius: 6px; height: 12px; overflow: hidden; }
.bar-fill { background: #1a9c46; height: 100%; }

/* 表格 */
.table-wrap { overflow-x: auto; background: #fff; border-radius: 8px; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
table.grid { border-collapse: collapse; width: 100%; min-width: 640px; }
table.grid th, table.grid td {
    border-bottom: 1px solid #eef1f4;
    padding: 8px 10px;
    text-align: left;
    white-space: nowrap;
}
table.grid th { background: #f7f9fb; }
tr.row-today { background: #fff9db; font-weight: bold; }
tr.row-future { color: #aaa; }
tr.row-warn { background: #fff3e0; }
.tag-gray { color: #999; }

/* 按钮 */
.btn {
    border: none;
    border-radius: 6px;
    padding: 8px 16px;
    font-size: 14px;
    cursor: pointer;
    color: #fff;
    display: inline-block;
}
.btn:disabled { opacity: .6; cursor: default; }
.btn-green { background: #1a9c46; }
.btn-green:hover { background: #158a3d; }
.btn-red { background: #d93025; }
.btn-red:hover { background: #c22a20; }
.btn-gray { background: #8a97a5; }
.btn-gray:hover { background: #77828f; }
.btn-sm { padding: 4px 10px; font-size: 13px; }
.btn-big { padding: 12px 26px; font-size: 17px; }

/* 表单 */
label { display: block; margin: 8px 0; }
input[type=text], input[type=password], input[type=date], input[type=time],
input[type=number], select, textarea {
    padding: 7px 10px;
    border: 1px solid #cdd5dd;
    border-radius: 6px;
    font-size: 14px;
    font-family: inherit;
    max-width: 100%;
}
fieldset { border: 1px solid #dde3e9; border-radius: 8px; margin: 10px 0; }
legend { padding: 0 6px; color: #556; }
.inline-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.inline-form label { margin: 0; }
.form-row { display: flex; flex-wrap: wrap; gap: 8px; }
.form-row label { flex: 1 1 160px; }

/* 行内编辑表单 */
.row-edit {
    display: none;
    margin-top: 6px;
    padding: 8px;
    background: #f7f9fb;
    border-radius: 6px;
    white-space: normal;
}
.row-edit.show { display: block; }
.row-edit input, .row-edit select { margin: 2px; }

/* 登录/安装页 */
.login-body {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
}
.login-box {
    background: #fff;
    padding: 30px 34px;
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0,0,0,.1);
    width: 360px;
    max-width: 92vw;
}
.login-box h1 { font-size: 20px; margin-top: 0; text-align: center; }
.install-box { width: 480px; }
.login-box .btn { width: 100%; margin-top: 10px; }

/* 打印 */
.print-table { border-collapse: collapse; width: 100%; margin: 8px 0; }
.print-table th, .print-table td { border: 1px solid #999; padding: 5px 8px; font-size: 13px; }
.print-table th { background: #eee; }

@media print {
    .topbar, .no-print, .flash, .alerts { display: none !important; }
    body { background: #fff; }
    .container { max-width: none; padding: 0; }
    .print-area { box-shadow: none; }
    a { color: #000; }
}

/* 手机适配 */
@media (max-width: 640px) {
    .topbar { padding: 0 6px; }
    .topbar nav a { padding: 12px 8px; font-size: 13px; }
    .container { padding: 8px 8px 40px; }
}
