.modal-overlay[data-v-8c21d881]{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:1000}.modal-container[data-v-8c21d881]{background:#fff;border-radius:10px;width:480px;max-height:90vh;box-shadow:0 8px 32px #0003;display:flex;flex-direction:column}.modal-header[data-v-8c21d881]{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;border-bottom:1px solid #eee}.modal-header h2[data-v-8c21d881]{margin:0;font-size:16px;color:#1a1a2e}.close-btn[data-v-8c21d881]{background:none;border:none;font-size:22px;color:#999;cursor:pointer;line-height:1}.close-btn[data-v-8c21d881]:hover{color:#333}.modal-tabs[data-v-8c21d881]{display:flex;border-bottom:1px solid #eee;padding:0 24px}.tab[data-v-8c21d881]{padding:10px 16px;border:none;background:none;cursor:pointer;font-size:13px;color:#666;border-bottom:2px solid transparent;transition:all .2s}.tab[data-v-8c21d881]:hover{color:#1a1a2e}.tab.active[data-v-8c21d881]{color:#1a1a2e;border-bottom-color:gold;font-weight:600}.modal-body[data-v-8c21d881]{padding:20px 24px;overflow-y:auto;flex:1}.tab-content[data-v-8c21d881]{display:flex;flex-direction:column;gap:14px}.form-group[data-v-8c21d881]{display:flex;flex-direction:column;gap:4px}.form-group label[data-v-8c21d881]{font-size:13px;color:#555;font-weight:500}.form-control[data-v-8c21d881]{padding:8px 12px;border:1px solid #d9d9d9;border-radius:6px;font-size:14px;outline:none;transition:border .2s}.form-control[data-v-8c21d881]:focus{border-color:#1a1a2e}.form-control[data-v-8c21d881]:disabled{background:#f5f5f5;color:#999}.form-actions[data-v-8c21d881]{display:flex;justify-content:flex-end;gap:8px;padding-top:4px}.btn[data-v-8c21d881]{padding:8px 20px;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.btn-default[data-v-8c21d881]{background:#fff;color:#555;border:1px solid #d9d9d9}.btn-default[data-v-8c21d881]:hover{color:#1a1a2e;border-color:#1a1a2e}.btn-primary[data-v-8c21d881]{background:#1a1a2e;color:#fff}.btn-primary[data-v-8c21d881]:hover{background:#16213e}.btn-primary[data-v-8c21d881]:disabled{opacity:.5;cursor:not-allowed}.msg[data-v-8c21d881]{margin:0;font-size:13px;padding:8px 12px;border-radius:4px}.msg.success[data-v-8c21d881]{background:#f6ffed;color:#52c41a;border:1px solid #b7eb8f}.msg.error[data-v-8c21d881]{background:#fff2f0;color:#ff4d4f;border:1px solid #ffccc7}.signature-preview[data-v-8c21d881]{display:flex;justify-content:center;align-items:center;min-height:120px;border:2px dashed #d9d9d9;border-radius:8px;padding:16px;background:#fafafa}.preview-img[data-v-8c21d881]{max-height:160px;max-width:100%;object-fit:contain}.preview-placeholder[data-v-8c21d881]{color:#bbb;font-size:14px}*{margin:0;padding:0;box-sizing:border-box}html,body{overflow:hidden;height:100%}body{font-family:Microsoft YaHei,PingFang SC,sans-serif;background:#f0f2f5;color:#333}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{background:linear-gradient(135deg,#1a1a2e,#16213e 55%,#0f3460);padding:0 24px;height:56px;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;box-shadow:0 2px 6px #0000004d,0 8px 20px #0f346059;border-bottom:2px solid rgba(255,215,0,.55);z-index:10}.app-title{color:gold;font-size:18px;font-weight:600;white-space:nowrap}.app-user{display:flex;align-items:center}.user-dropdown{position:relative;display:flex;align-items:center;gap:8px;cursor:pointer;padding:6px 10px;border-radius:6px;transition:background .2s}.user-dropdown:hover{background:#ffffff14}.user-name{color:gold;font-size:13px}.user-role{color:#999;font-size:12px;background:#ffffff14;padding:2px 8px;border-radius:10px}.user-dropdown-content{display:none;position:absolute;top:100%;right:0;background:#fff;min-width:140px;border-radius:6px;box-shadow:0 4px 16px #00000026;z-index:100}.user-dropdown:hover .user-dropdown-content{display:block}.user-dropdown-content .dropdown-item{display:block;padding:10px 16px;color:#333;text-decoration:none;font-size:14px;cursor:pointer;transition:background .15s}.user-dropdown-content .dropdown-item:hover{background:#f0f2f5;color:#16213e}.user-dropdown-content .logout-item{color:#e74c3c}.user-dropdown-content .logout-item:hover{background:#fff2f0;color:#e74c3c}.user-dropdown-content .dropdown-divider{height:1px;background:#eee;margin:4px 0}.app-body{flex:1;display:flex;min-height:0}.app-sidebar{width:180px;flex-shrink:0;background:linear-gradient(180deg,#16213e,#1a1a2e);border-right:1px solid #0d1526;overflow-y:auto;box-shadow:3px 0 14px #00000059,inset -1px 0 #ffffff0d}.app-sidebar::-webkit-scrollbar{width:6px}.app-sidebar::-webkit-scrollbar-thumb{background:#ffffff2e;border-radius:3px}.app-sidebar::-webkit-scrollbar-track{background:transparent}.side-nav{padding:12px 0}.menu-group{margin-bottom:2px}.menu-group-title{display:flex;align-items:center;justify-content:space-between;padding:9px 14px;cursor:pointer;font-size:14px;font-weight:600;color:#aab3c8;transition:all .2s;-webkit-user-select:none;user-select:none}.menu-group-title:hover{color:gold;background:#ffffff14}.menu-group-title.active{color:gold}.menu-arrow{font-size:12px;color:#7a86a3;transition:transform .2s}.menu-arrow.open{transform:rotate(90deg)}.menu-group-items{padding:2px 0 6px}.menu-group-items .menu-item{padding-left:30px}.menu-item{display:block;padding:8px 14px;font-size:14px;color:#aab3c8;text-decoration:none;transition:all .2s;border-left:3px solid transparent;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-item:hover{color:#fff;background:#ffffff14}.menu-item.active{color:gold;background:#ffd7001f;border-left-color:gold;font-weight:600}.menu-item-top{font-weight:500}.app-main{flex:1;padding:24px 32px;overflow-y:auto;min-width:0;background:linear-gradient(160deg,#e8ebf2,#f4f6fa 45%,#eef1f6)}.app-main .page,.app-main .card,.app-main .stat-card,.app-main .info-card{background:#fff;box-shadow:0 1px 2px #1a1a2e0d,0 6px 18px #1a1a2e1a}.app-main .stat-card{box-shadow:0 2px 4px #1a1a2e0f,0 10px 24px #1a1a2e1f}.app-main .btn{box-shadow:0 1px 2px #1a1a2e1f;transition:transform .15s ease,box-shadow .15s ease}.app-main .btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px #1a1a2e2e}.app-main .btn:active{transform:translateY(0);box-shadow:0 1px 2px #1a1a2e1f}.modal{box-shadow:0 16px 48px #0000004d,0 6px 16px #00000029}.app-main .table th{box-shadow:inset 0 -1px #e6e8ef}.app-footer{height:36px;flex-shrink:0;background:#16213e;color:#99a;font-size:12px;display:flex;align-items:center;justify-content:center;gap:8px}.footer-sep{color:#556}
