*{margin:0;padding:0;box-sizing:border-box}
html,body{height:100%;font-family:"Helvetica Neue",Helvetica,"PingFang SC","Microsoft YaHei",Arial,sans-serif;background:#f0f2f5}
#app{height:100%;display:flex;flex-direction:column}

.oms-header{display:flex;align-items:center;justify-content:space-between;height:56px;background:#001529;color:#fff;padding:0 20px;flex-shrink:0;z-index:100}
.oms-header-left{display:flex;align-items:center;gap:12px}
.oms-header-logo{font-size:20px;font-weight:700;letter-spacing:1px}
.oms-header-subtitle{font-size:12px;color:rgba(255,255,255,0.55);margin-left:8px}
.oms-header-right{display:flex;align-items:center;gap:16px;font-size:13px;color:rgba(255,255,255,0.75)}
.oms-header-user{cursor:pointer;display:flex;align-items:center;gap:6px}

.oms-body{display:flex;flex:1;overflow:hidden}

.oms-sidebar{width:220px;background:#fff;border-right:1px solid #e8e8e8;overflow-y:auto;overflow-x:hidden;flex-shrink:0;transition:width 0.3s}
.oms-sidebar.collapsed{width:64px}
.oms-sidebar.collapsed .sidebar-menu-name,
.oms-sidebar.collapsed .sidebar-submenu-title-text,
.oms-sidebar.collapsed .sidebar-submenu-arrow{display:none}
.oms-sidebar.collapsed .sidebar-menu-icon{margin:0}
.oms-sidebar.collapsed .sidebar-menu-link{justify-content:center;padding:0 16px}
.oms-sidebar.collapsed .sidebar-submenu-title{justify-content:center;padding:0 16px}
.oms-sidebar.collapsed .sidebar-submenu-children{display:none!important}
.oms-sidebar::-webkit-scrollbar{width:4px}
.oms-sidebar::-webkit-scrollbar-thumb{background:rgba(0,0,0,0.1);border-radius:2px}

.sidebar-menu-group{border-bottom:1px solid #f5f5f5}

.sidebar-menu-link{display:flex;align-items:center;gap:10px;padding:0 20px;height:44px;line-height:44px;color:#303133;text-decoration:none;font-size:13px;cursor:pointer;transition:all 0.2s}
.sidebar-menu-link:hover{color:#409eff;background:rgba(64,158,255,0.06)}
.sidebar-menu-link.active{color:#409eff;background:rgba(64,158,255,0.1);border-right:2px solid #409eff}
.sidebar-menu-icon{font-size:16px;width:16px;flex-shrink:0}
.sidebar-menu-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sidebar-menu-link.placeholder{color:#c0c4cc;cursor:default}
.sidebar-menu-link.placeholder:hover{color:#c0c4cc;background:transparent}

.sidebar-submenu-title{display:flex;align-items:center;gap:10px;padding:0 20px;height:44px;line-height:44px;color:#303133;font-size:13px;font-weight:600;cursor:pointer;transition:all 0.2s;user-select:none}
.sidebar-submenu-title:hover{background:rgba(0,0,0,0.03)}
.sidebar-submenu-title.open{color:#409eff}
.sidebar-submenu-arrow{font-size:10px;transition:transform 0.3s;color:#909399;flex-shrink:0}
.sidebar-submenu-title.open .sidebar-submenu-arrow{transform:rotate(90deg)}
.sidebar-submenu-children{overflow:hidden;transition:max-height 0.3s ease}
.sidebar-submenu-children .sidebar-menu-link{padding-left:46px;font-size:12px;height:38px;line-height:38px}

.oms-main{flex:1;display:flex;flex-direction:column;overflow:hidden}
.oms-breadcrumb{padding:12px 20px;background:#fff;border-bottom:1px solid #e8e8e8;flex-shrink:0}
.oms-content{flex:1;padding:20px;overflow-y:auto}

.collapsed-menu-tip{display:none;padding:12px;text-align:center;font-size:12px;color:#909399;border-bottom:1px solid #f5f5f5}
.oms-sidebar.collapsed .collapsed-menu-tip{display:block}

.placeholder-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;background:#fff;border-radius:8px;box-shadow:0 1px 4px rgba(0,0,0,0.06);padding:60px 20px;text-align:center}
.placeholder-icon{font-size:64px;color:#c0c4cc;margin-bottom:16px}
.placeholder-container h2{font-size:20px;color:#303133;font-weight:600;margin-bottom:8px}
.placeholder-hint{font-size:14px;color:#909399;margin-bottom:4px}
.placeholder-detail{font-size:12px;color:#c0c4cc;margin-bottom:24px}

.oms-content-iframe{padding:20px;overflow-y:auto;min-height:100vh;background:#f0f2f5}
.oms-content-iframe .placeholder-container{min-height:300px}

.oms-shell-iframe{width:100%;height:100%;border:none;display:block;transition:opacity 0.15s ease}
.oms-shell-iframe.loading{opacity:0.6}
.oms-shell-loading{display:flex;align-items:center;justify-content:center;height:100%;color:#909399;font-size:14px}
