*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Arial,sans-serif;background-color:#f0f2f5;color:#222;font-size:14px}a{color:inherit;text-decoration:none}.layout{display:flex;min-height:100vh}.sidebar{width:220px;background:linear-gradient(180deg,#2b2b3d,#1f1f2e);color:#ccc;padding:24px 0;flex-shrink:0}.sidebar .logo{padding:0 24px 24px;font-size:18px;font-weight:600;color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}.sidebar .menu-item{display:block;padding:14px 24px;color:#bbb;cursor:pointer;transition:all .2s}.sidebar .menu-item:hover{background-color:#ffffff0f;color:#fff}.sidebar .menu-item.active{background-color:#ff5a7a33;color:#fff;border-left:3px solid #ff5a7a}.main{flex:1;padding:28px;overflow:auto}.card{background-color:#fff;border-radius:10px;padding:24px;box-shadow:0 2px 12px #0000000d}.page-title{font-size:20px;font-weight:600;margin-bottom:20px}.muted{color:#999;font-size:12px}.row{display:flex;align-items:center}.row-between{display:flex;align-items:center;justify-content:space-between}.mb-16{margin-bottom:16px}.field{margin-bottom:18px}.field label{display:block;margin-bottom:6px;color:#555;font-size:13px}.field input,.field textarea,.field select{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;outline:none;transition:border-color .2s}.field input:focus,.field textarea:focus{border-color:#ff5a7a}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 18px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.btn-primary{background-color:#ff5a7a;color:#fff}.btn-primary:hover{background-color:#ff4264}.btn-primary:disabled{background-color:#ffc8d4;cursor:not-allowed}.btn-success{background-color:#2bb673;color:#fff}.btn-success:hover{background-color:#259d62}.btn-danger{background-color:#e54d42;color:#fff}.btn-danger:hover{background-color:#cc3f35}.btn-ghost{background-color:#fff;border:1px solid #ddd;color:#555}.btn-ghost:hover{border-color:#ff5a7a;color:#ff5a7a}.btn-sm{padding:6px 12px;font-size:13px}.tag{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px}.tag-orange{background-color:#fff1e0;color:#ff8c3a}.tag-green{background-color:#e1f6ea;color:#2bb673}.tag-gray{background-color:#f0f1f5;color:#888}table{width:100%;border-collapse:collapse}table th,table td{padding:12px 14px;text-align:left;border-bottom:1px solid #f0f0f0;font-size:14px}table th{background-color:#fafafa;color:#666;font-weight:600;font-size:13px}table tbody tr:hover{background-color:#fafbfc}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px}.stat-card{background-color:#fff;border-radius:10px;padding:24px;box-shadow:0 2px 12px #0000000d}.stat-card .num{font-size:32px;font-weight:700;color:#ff5a7a}.stat-card .lbl{margin-top:6px;color:#888;font-size:13px}.filter-bar{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}.filter-bar select,.filter-bar input{padding:8px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px}.modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000073;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background-color:#fff;border-radius:10px;padding:28px;width:480px;max-width:92vw}.modal h3{margin-bottom:18px}.empty{text-align:center;padding:60px 0;color:#999}.mobile-bar,.sidebar-mask{display:none}@media (max-width: 768px){.layout{display:block}.mobile-bar{display:flex;align-items:center;gap:10px;position:sticky;top:0;z-index:60;height:52px;padding:0 14px;background:linear-gradient(135deg,#2b2b3d,#1f1f2e);color:#fff;flex-shrink:0}.mobile-bar .burger{width:40px;height:40px;border:none;border-radius:8px;background:#ffffff1f;color:#fff;font-size:20px;cursor:pointer;flex-shrink:0}.mobile-bar .bar-title{font-size:16px;font-weight:600}.mobile-bar .bar-user{margin-left:auto;font-size:13px;color:#bbb}.sidebar{position:fixed;top:0;left:0;bottom:0;z-index:90;width:250px;max-width:82vw;padding:20px 0;transform:translate(-105%);transition:transform .25s ease;overflow-y:auto}.sidebar.open{transform:translate(0);box-shadow:8px 0 40px #00000073}.sidebar-mask{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:80}.main{padding:14px 12px;padding-bottom:calc(44px + env(safe-area-inset-bottom));overflow:visible}.page-title{font-size:18px;margin-bottom:14px}.card{padding:14px 12px}.row-between{flex-wrap:wrap;gap:10px}input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px}.btn{min-height:40px}.btn-sm{min-height:36px;padding:6px 14px}.stat-grid{grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.stat-card{padding:16px 14px}.stat-card .num{font-size:24px}.filter-bar{gap:8px}.filter-bar select,.filter-bar input:not([type=date]){flex:1 1 45%;min-width:0}.filter-bar input[type=date]{flex:1 1 auto;min-width:0}.filter-bar .btn{flex:1 1 auto}table{display:block;width:100%}thead{display:none}tbody{display:block}tbody tr{display:block;background-color:#fff;border:1px solid #ececf0;border-radius:10px;padding:4px 14px;margin-bottom:12px}tbody tr:hover{background-color:#fff}tbody td{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px dashed #efeff2;text-align:right;font-size:14px;white-space:normal!important;word-break:break-word;max-width:100%!important}tbody td:last-child{border-bottom:none}tbody td:before{content:attr(data-label);flex-shrink:0;color:#999;font-size:13px;text-align:left;font-weight:500}tbody td.content-cell{display:block;text-align:left}tbody td.content-cell:before{display:block;margin-bottom:4px;font-size:12px}tbody td.content-cell{max-width:none!important}tbody td.cell-name{justify-content:flex-start;align-items:center;gap:8px;flex-wrap:wrap}tbody td.action-cell,tbody td.ops{display:block;text-align:left}tbody td.action-cell:before,tbody td.ops:before{content:none}tbody td.action-cell .btn,tbody td.ops .btn{margin:4px 6px 0 0}.modal{width:94vw}.modal-lg{width:94vw!important}.modal-card,.modal-card.wide{width:94vw!important;max-height:88vh;padding:20px 16px}.modal-actions{flex-wrap:wrap}.modal-actions .btn{flex:1}.actions{flex-wrap:wrap}.actions .btn{flex:1;min-width:120px}.img-preview{padding:12px!important}.login-page{align-items:flex-start!important;padding:24px 12px}.login-card{padding:28px 18px!important}}
