:root{--bg: #eef1f4;--panel: #ffffff;--line: #d8dde3;--text: #1f2937;--muted: #6b7280;--accent: #2f6fed;--accent-soft: #eaf0ff}*{box-sizing:border-box}body{margin:0;font-family:Microsoft JhengHei UI,Segoe UI,sans-serif;color:var(--text);background:var(--bg)}button,input,select,textarea{font:inherit}button,select,input,textarea{border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#fff}button{cursor:pointer;background:var(--accent);border-color:var(--accent);color:#fff}button.subtle-btn{background:#fff;color:var(--text);border-color:var(--line)}button:disabled{opacity:.6;cursor:not-allowed}.app-shell{max-width:1500px;margin:0 auto;padding:20px}.login-view{min-height:calc(100vh - 40px);display:grid;place-items:center}.login-card{width:min(460px,100%);background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:0 18px 40px #0f172a14}.login-card h1{margin:0 0 8px;font-size:28px}.login-card p{margin:0 0 18px;color:var(--muted)}.topbar{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:16px}.topbar h1{margin:0;font-size:28px}.topbar p{margin:6px 0 0;color:var(--muted)}.topbar-actions{display:flex;gap:10px;flex-wrap:wrap}.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.stat-card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px}.stat-card{padding:16px}.stat-card .label{color:var(--muted);font-size:13px}.stat-card .value{margin-top:6px;font-size:28px;font-weight:700}.layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(360px,.9fr);gap:16px}.panel{padding:16px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px}.panel-head h2{margin:0;font-size:18px}.toolbar-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}.form-grid.single{grid-template-columns:1fr}.form-grid.compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid label,.detail-actions label{display:grid;gap:6px}.form-grid label span,.detail-actions label span{color:var(--muted);font-size:13px}.toolbar-row input[type=search]{flex:1.4}.checkbox-inline{display:inline-flex;gap:8px;align-items:center;color:var(--muted)}.pagination-row{align-items:center}.page-size-control{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.pagination-summary{color:var(--muted);font-size:13px}.table-wrap{max-height:680px;overflow:auto;border:1px solid var(--line);border-radius:10px}.table-wrap.small-table{max-height:280px}.list-table{width:100%;border-collapse:collapse;table-layout:fixed}.list-table th,.list-table td{border-bottom:1px solid #edf1f5;padding:10px 12px;text-align:left;vertical-align:top;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.list-table thead th{position:sticky;top:0;z-index:1;background:#f8fafc}.list-table tbody tr:hover{background:#f8fbff}.list-table tbody tr.selected{background:var(--accent-soft)}.right-column{display:grid;gap:16px}.detail-box{min-height:360px;border:1px solid var(--line);border-radius:10px;padding:14px;background:#fbfdff}.detail-box.empty{display:flex;align-items:center;justify-content:center;color:var(--muted)}.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;margin-bottom:14px}.detail-item .label{color:var(--muted);font-size:12px;margin-bottom:4px}.detail-item .value{font-weight:600}.detail-actions{display:grid;gap:10px}.detail-actions textarea{min-height:96px;resize:vertical}.activity-list{display:grid;gap:10px;margin-top:14px}.activity-item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}.activity-item .meta{color:var(--muted);font-size:12px;margin-bottom:4px}.pill{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:12px;font-weight:700}.toast{position:fixed;right:18px;bottom:18px;background:#111827;color:#fff;padding:12px 14px;border-radius:10px;max-width:360px;box-shadow:0 10px 24px #0f172a2e}@media (max-width: 1200px){.layout{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 760px){.topbar{flex-direction:column}.stats-grid,.detail-grid,.form-grid,.form-grid.compact-grid{grid-template-columns:1fr}}
