*{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;background:#f5f7fa;color:#1f2937;font-size:14px}a{color:inherit;text-decoration:none}.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:6px;border:none;background:#1989fa;color:#fff;cursor:pointer;font-size:14px}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.secondary{background:#fff;color:#1989fa;border:1px solid #1989fa}.btn.success{background:#07c160}.btn.ghost{background:transparent;color:#6b7280;border:1px solid #e5e7eb}.card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000000d;padding:16px;margin-bottom:16px}.card h3{margin:0 0 12px;font-size:16px;font-weight:600}.table{width:100%;border-collapse:collapse;font-size:13px}.table th,.table td{padding:10px 8px;border-bottom:1px solid #f0f0f0;text-align:left}.table th{background:#fafbfc;color:#6b7280;font-weight:500}.table tbody tr:hover{background:#fafbfc}.tag{display:inline-block;padding:2px 8px;border-radius:4px;font-size:12px;margin-right:4px}.tag.primary{background:#e6f3ff;color:#1989fa}.tag.warning{background:#fff7e6;color:#fa8c16}.tag.success{background:#e6ffed;color:#07c160}.tag.danger{background:#ffe6e6;color:#ee0a24}.tag.default{background:#f5f5f5;color:#6b7280}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:#531dab;color:#fff;padding:16px 0;flex-shrink:0;position:relative;display:flex;flex-direction:column}.sidebar .logo{padding:0 20px 20px;font-size:16px;font-weight:600;border-bottom:1px solid #722ed1}.sidebar .menu-item{display:block;padding:12px 20px;cursor:pointer;transition:background .2s;color:inherit;text-decoration:none}.sidebar .menu-item:hover,.sidebar .menu-item.active{background:#722ed1}.sidebar .menu-item.active{border-left:3px solid #fff;padding-left:17px}.sidebar-footer{margin-top:auto;padding:16px 20px;color:#d3adf7;font-size:12px;border-top:1px solid #722ed1}.main{flex:1;padding:24px;overflow-y:auto;min-width:0}.header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.header h2{margin:0;font-size:20px}.menu-toggle,.sidebar-mask{display:none}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:8px;padding:24px;min-width:480px;max-width:90vw;max-height:90vh;overflow-y:auto}.modal h3{margin:0 0 16px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.flex{display:flex}.flex-1{flex:1}.gap-2{gap:8px}.gap-3{gap:12px}.items-center{align-items:center}.justify-between{justify-content:space-between}.text-sm{font-size:12px}.text-gray{color:#6b7280}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.form-row{margin-bottom:12px;display:flex;flex-direction:column;gap:4px}.form-row label{font-size:13px;color:#6b7280}.input,.textarea,.select{padding:8px 12px;border:1px solid #d1d5db;border-radius:6px;font-size:14px;width:100%;outline:none}.textarea{min-height:80px;resize:vertical}.login-form{width:360px}.btn-link{background:none;border:none;color:#1989fa;cursor:pointer;font-size:13px;padding:0;text-decoration:underline}.btn-link:hover{opacity:.8}@media (max-width: 768px){.menu-toggle{display:flex;position:fixed;top:12px;left:12px;z-index:1002;width:40px;height:40px;border:none;background:#531dab;color:#fff;border-radius:6px;font-size:18px;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 6px #0003}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:1001;transform:translate(-100%);transition:transform .3s ease;width:240px;overflow-y:auto}.layout.menu-open .sidebar{transform:translate(0)}.sidebar-mask{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s}.layout.menu-open .sidebar-mask{opacity:1;pointer-events:auto}.sidebar-footer{margin-top:auto;width:100%;padding:16px 20px}.main{padding:56px 12px 12px}.header{flex-wrap:wrap;gap:8px}.header h2{font-size:17px}.card{overflow-x:auto;padding:12px}.table{min-width:560px}.modal{min-width:0;width:calc(100vw - 24px);max-width:calc(100vw - 24px);padding:16px}.login-form{width:calc(100vw - 32px);max-width:360px}}@media (max-width: 480px){.main{padding:52px 8px 8px}.card{padding:10px}.btn{padding:8px 12px;font-size:13px}}@media print{.no-print,.sidebar,.menu-toggle,.sidebar-mask{display:none!important}.main{padding:0}.card{box-shadow:none;border:1px solid #ddd;page-break-inside:avoid}body{background:#fff}}
