124 lines
3.5 KiB
CSS
124 lines
3.5 KiB
CSS
:root {
|
|
--bg-page: #FFFFFF;
|
|
--bg-subtle: #F7F8FA;
|
|
--bg-hover: #F2F3F5;
|
|
--border: #EBEDF0;
|
|
--border-strong: #DCDEE3;
|
|
--text-1: #1D2129;
|
|
--text-2: #4E5969;
|
|
--text-3: #86909C;
|
|
--accent: #3370FF;
|
|
--accent-bg: #F0F5FF;
|
|
--ok: #23A757;
|
|
--warn: #E8842C;
|
|
--danger: #E5484D;
|
|
--dot-empty: #C9CDD4;
|
|
--radius-sm: 6px;
|
|
--radius-md: 8px;
|
|
--radius-lg: 12px;
|
|
--shadow-float: 0 4px 16px rgba(29, 33, 41, 0.08);
|
|
}
|
|
|
|
* { box-sizing: border-box; }
|
|
|
|
html, body { margin: 0; padding: 0; }
|
|
|
|
body {
|
|
background: var(--bg-page);
|
|
color: var(--text-1);
|
|
font-family: -apple-system, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;
|
|
font-size: 13px;
|
|
line-height: 1.6;
|
|
-webkit-font-smoothing: antialiased;
|
|
}
|
|
|
|
button, input, select, textarea { font: inherit; color: inherit; }
|
|
|
|
.num { font-variant-numeric: tabular-nums; }
|
|
.flex1 { flex: 1; }
|
|
.muted { color: var(--text-3); }
|
|
.muted2 { color: var(--text-2); }
|
|
|
|
.btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
gap: 6px;
|
|
padding: 0 12px;
|
|
height: 32px;
|
|
border-radius: var(--radius-sm);
|
|
border: 1px solid var(--border-strong);
|
|
background: var(--bg-page);
|
|
color: var(--text-1);
|
|
cursor: pointer;
|
|
white-space: nowrap;
|
|
}
|
|
.btn:hover { background: var(--bg-hover); }
|
|
.btn:disabled { opacity: 0.45; cursor: not-allowed; }
|
|
.btn-primary { background: var(--accent); border-color: var(--accent); color: #FFFFFF; }
|
|
.btn-primary:hover { background: #2B5FD9; }
|
|
.btn-danger { color: var(--danger); border-color: var(--danger); }
|
|
.btn-sm { height: 26px; padding: 0 10px; font-size: 12px; }
|
|
.btn-xs { height: 22px; padding: 0 8px; font-size: 12px; }
|
|
|
|
.input, .select, .textarea {
|
|
height: 32px;
|
|
padding: 0 10px;
|
|
border: 1px solid var(--border-strong);
|
|
border-radius: var(--radius-sm);
|
|
background: var(--bg-page);
|
|
outline: none;
|
|
width: 100%;
|
|
}
|
|
.textarea { height: auto; min-height: 56px; padding: 8px 10px; resize: vertical; }
|
|
.input:focus, .select:focus, .textarea:focus { border-color: var(--accent); }
|
|
.input::placeholder, .textarea::placeholder { color: var(--text-3); }
|
|
|
|
.card { border: 1px solid var(--border); border-radius: var(--radius-md); background: var(--bg-page); }
|
|
|
|
.icon-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 26px;
|
|
height: 26px;
|
|
flex: none;
|
|
border: none;
|
|
background: transparent;
|
|
border-radius: var(--radius-sm);
|
|
color: var(--text-3);
|
|
cursor: pointer;
|
|
}
|
|
.icon-btn:hover { background: var(--bg-hover); color: var(--text-1); }
|
|
.icon-btn.active { color: var(--accent); }
|
|
.icon-btn.active-warn { color: var(--warn); }
|
|
|
|
.tag {
|
|
display: inline-block;
|
|
padding: 0 8px;
|
|
height: 22px;
|
|
line-height: 20px;
|
|
border-radius: 4px;
|
|
font-size: 12px;
|
|
background: var(--bg-subtle);
|
|
color: var(--text-2);
|
|
border: 1px solid var(--border);
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.dot { width: 6px; height: 6px; border-radius: 50%; display: inline-block; flex: none; }
|
|
.dot.normal { background: var(--ok); }
|
|
.dot.late, .dot.early, .dot.incomplete { background: var(--warn); }
|
|
.dot.absent { background: var(--danger); }
|
|
.dot.none, .dot.leave { background: var(--dot-empty); }
|
|
|
|
/* 移动端:避免 iOS 聚焦缩放,输入字号提到 16px */
|
|
@media (max-width: 720px) {
|
|
input, select, textarea { font-size: 16px !important; }
|
|
input[type="checkbox"] { font-size: initial; }
|
|
}
|
|
.dot.rest { background: var(--border); }
|
|
|
|
.icon { display: inline-flex; align-items: center; justify-content: center; flex: none; }
|
|
.icon svg { width: 100%; height: 100%; display: block; }
|